Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

1 Zum Seitenanfang

Freitag, 14. November 2008, 13:43

VBA und Excel

Hi leute ich habe ein kleine problem:D(wieder mal)

es geht darum die mitarbeiter öffnen eine txt datei kopieren den inhalt davon dann öffnen sie eine excel datei, wählen unten eine bestimmte mappe und kopieren alles aus der txt datei da rein. Es wird auf die einzelnen zellen aufgeteilt und in einer anderen arbeitsmapp werden die werte übernommen und mit den wird gerechnet. nun habe ich die aufgabe bekommen ein programm zu schreiben welches genau das macht automatisch so dass die mitarbeiter ordner angeben in dem sich die .txt dateien befinden. wie könnte ich das umsetzen? problem dabei ist ich MUSS Borland Compiler C++ benutzen.

Hoffe ihr habt ideen wie ich es umsetzen kann

MFG

Nachtrag:

Hi leute ich habe immer noch das selbe problem nur dass diesmal mir gesagt wurde ich soll VBA nutzen. problem ich kenne mich damit nicht aus. habe nach fopen VBA gegoggled aber da kamen quelltexte die ziemlich lang sind und die ich nciht verstehe kann mir jemand hier erklären wie ich eine txt datei öffne und die dann in excel importiere und mit ; oder : trenne?

MFG
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (18. November 2008, 11:56)

 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

2 Zum Seitenanfang

Dienstag, 18. November 2008, 15:45

Hallo,

ich weiß nicht ob ich dein problem richtig verstandenhabe....aber.....

Zitat

wie ich eine txt datei öffne und die dann in excel importiere und mit ; oder : trenne?


Die Trennung (am besten mit ";" ) muss bereits in der txt-Datei erfolgen, damit beim Import nach Excel die einzelnen Werte in die entsprechenden Zellen geschrieben werden.

Beispiel der TXT-Datei mit Namen "beispiel.txt":

Quellcode

1
2
text1;text2;text3
text4;text5;text6;text7


VBA-Makro in Excel:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Makro1()
'
' Makro1 Makro
' Makro am 18.11.2008 von XXX aufgezeichnet
'

'
    Workbooks.OpenText Filename:= _
        "C:\Dokumente und Einstellungen\XXX\Eigene Dateien\beispiel.txt", Origin:= _
        xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _
        Array(2, 2), Array(3, 2), Array(4, 2)), TrailingMinusNumbers:=True
End Sub


Gruß
Anja
Viele Grüße
Anja

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »anjas« (18. November 2008, 15:46)

 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

3 Zum Seitenanfang

Mittwoch, 19. November 2008, 09:35

ok vielen dank

das sind die schritte , die ich mache muss:
1.vorlage.xls öffnen(funktioniert)
2.vba form starten(funktioniert)
3.sachen eingeben(funktioniert)
4.in der vorlage.xsl daten verändern(funktioniert)
5.die vorlage.xls in anderen ordner abspeichern unter anderem namen(funktioniert)
6.die kopie der vorlage.xls öffnen(funktioniert)
7.werte aus der txt datei in die kopierte vorlage in einem worksheet unter bestimmten kriterien einfügen(geht nicht)
8.alle xls datein speichern und schließen(kommt noch)

und bei deinem quellcode wo gebe ich das worksheet an??
das einfügen der txt datei in die kopie geht bei mir nicht. vllt liegt das daran dass ich noch ein workbook offen habe oder nicht??


MFG
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »cccpmik« (19. November 2008, 10:30)

 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

4 Zum Seitenanfang

Mittwoch, 19. November 2008, 10:56

Hallo,

Zitat

7.werte aus der txt datei in die kopierte vorlage in einem worksheet unter bestimmten kriterien einfügen(geht nicht)


Die Tabelle in der was eingefügt werden soll muss leer sein!

Zitat

und bei deinem quellcode wo gebe ich das worksheet an??

Es wird in die aktuelle Tabelle eingefügt.

Zitat

das einfügen der txt datei in die kopie geht bei mir nicht.

Heißt was......welcher Fehler wird gemeldet??

Hier noch mal ein anderer Code, der nicht die OpenText-Methode verwendet, sondern die QueryTables.Add-Methode.
Die Tabelle, in die importiert werden soll wird in der Zeile

Quellcode

1
Sheets("Tabelle1").Select
definiert.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Sub Makro3()
'
' Makro3 Makro
' Makro am 19.11.2008 von XXX aufgezeichnet
'

'
    Range("I19").Select
    Sheets("Tabelle1").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Dokumente und Einstellungen\XXX\Eigene Dateien\beispiel.txt", Destination:=Range("A1"))
        .Name = "beispiel"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub


Hast du denn schon mal versucht, mit dem in Excel integrierten Makro-Recorder die Schritte, die du manuell ausführen muss, aufzuzeichnen?
Der generiert dir doch dann ein entsprechendes VBA-Makro?!?!

Gruß
Viele Grüße
Anja
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

5 Zum Seitenanfang

Mittwoch, 19. November 2008, 11:14

also der fehler ist "ungültiger bereich" und bei dem query tables.add welche xls datei spreche ich dabei an? denn ich will die vorlage nicht überschreiben. und bleibt danach auch das layout der tabellen gleich? es muss alles genau so aussehen wie in der vorlage nur die werte müssen aus der txt datei übernommen werden

MFG

PS: wenn ich per hand die werte aus der txt datei einfüge mache ich das so:

ich erstelle eine leere xls mappe. öffne die txt datei in der xls mappe. dann öffnet sich son ein dialog fenster dort stelle ich ein getrennt nach leerzeichen dann bei andere : einfügen danach bei weitere dezimaltrennzeichen .
danach kopiere ich alles,schließe die erstelle mappe, öffne die kopie der vorlage klicke oben auf bearbeiten > inhalte einfügen... und wähle werte aus. und das mache ich mit 3 unterschiedlichen txt datein die in 3 worksheets reinkommen und in der 4en erscheint dann eine auswertung

ich habe es mit dem makro aufnahme dingens ausprobiert aber hat nicht geklappt hoffentlich kannst du mir da weiter helfen


MFG
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »cccpmik« (19. November 2008, 12:09)

 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

6 Zum Seitenanfang

Mittwoch, 19. November 2008, 13:57

Hallo,

das Makro arbeitet grds. in der gerade geöfneten Arbeitsmappe.

Zitat

ich erstelle eine leere xls mappe. öffne die txt datei in der xls mappe. dann öffnet sich son ein dialog fenster dort stelle ich ein getrennt nach leerzeichen dann bei andere : einfügen danach bei weitere dezimaltrennzeichen .


Genau so arbeitet auch das erste Makro. Wobei dies rein technsich betrachtet nicht korrekt ist, denn du willst ja nicht die txt-Datei öffnen, sondern deren Inhalt importieren.

Das ist die Vorgehensweise des zweiten Makros.

Es ist aus der Ferne schwierig, hier adäquate Hilfe zu leisten, da ich weder deine txt-Dateien, noch deine Excel-Tabelle im Detail kenne.

Zitat

ich habe es mit dem makro aufnahme dingens ausprobiert aber hat nicht geklappt...

Sorry, aber meine Glaskugel ist derzeit defekt ;-) WAS klappt nicht??

Gruß
Viele Grüße
Anja
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

7 Zum Seitenanfang

Mittwoch, 19. November 2008, 14:09

ok es hat sich eigentlich erledigt ich konnte alles so kopieren wie ich es wollte mit dem code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
Set shFirstQtr = Workbooks(2).Worksheets(5)

Set qtQtrResults = shFirstQtr.QueryTables _
    .Add(Connection:="TEXT;" + txtdatei3 + "", _
        Destination:=shFirstQtr.Cells(1, 1))
With qtQtrResults
    .PreserveFormatting = True
    .TextFileParseType = xlDelimited
    .TextFileSpaceDelimiter = False
    .TextFileSemicolonDelimiter = True
    .Refresh
End With


zwei kleine probleme gibts dabei
1. Die vorlage wird nicht überschrieben sondern in den cellen nach rechts verschoben und der inhalt aus der txt datei wird hinzugefügt
2. das layout(zellen breite und farbe) der vorlage ändert sich

kannste mir sagen welche parameter ich einfügen soll damit ich diese fehler behebe?
und wegen den inhalt der excel datei und der txt datein kann ich dir nicht sagen, da es firmen daten sind

MFG
Mein kleines Projekt
-Cruel Online-
 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

8 Zum Seitenanfang

Mittwoch, 19. November 2008, 15:46

Hi,

zu 1.) kannst du nicht hingehen und vor dem insert zunächst die Tabelle leeren?

zu 2.) puhhh auf anhieb nicht

Zitat

und wegen den inhalt der excel datei und der txt datein kann ich dir nicht sagen, da es firmen daten sind

schon klar, deswegen habich auchnicht nach Dateien gefragt sondern nur darauf hingewiesen, dass ohne rechts chwierig ist ;-))
Viele Grüße
Anja
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

9 Zum Seitenanfang

Mittwoch, 19. November 2008, 15:50

ja habe mir auch schon gedacht das worksheet zu leeren aber wie lautet der befehl? also worksheet(1).clear gibts nicht und beim leeren wird doch das layout auch geändert oder? und noch ein zusatz ich möchte alle zahlen aus der txt datei mit einem . als dezimaltrenn zeichen formatieren also die zahlen sollen nciht 10,0 sondern 10.0 lauten. wie geht das??

:D vielen dank im vorraus
Mein kleines Projekt
-Cruel Online-
 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

10 Zum Seitenanfang

Mittwoch, 19. November 2008, 15:58

Hi,

mein alter Lehrer sagte immer....learning by doing :P

Schreib irgend einen Quatsch in eine leere Excel-Tabelle rein.....formatiere diesen.....starte den Macro-Recorder....markiere alle Zellen.....lösche den Inhalt.....stoppe den recorder .....und staune über das fertige Makro

In die jetzt wunderschön geleerte Tabelle schreibst du 10 Dezimalzahlen mit , rein....startest wieder den Makro.Recorder.....bemühst mal die Ersetzen-Funktion.....stoppst den Recorder....et voila....das nächste Makro fertig

:D :D :D
Viele Grüße
Anja
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

11 Zum Seitenanfang

Mittwoch, 19. November 2008, 16:04

problem ist ich habe das alles nicht mit macro erstellt sondern mit den visual basic editor. ich rufe nur ein macro auf welches mir die vba form anzeigt
Mein kleines Projekt
-Cruel Online-
 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

12 Zum Seitenanfang

Mittwoch, 19. November 2008, 17:23

Warum in die Ferne schweifen wenn das Glück liegt doch so nah.....oder den Makro-Recorder halt mal nutzen ;-))

Gruß
Viele Grüße
Anja
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

13 Zum Seitenanfang

Mittwoch, 19. November 2008, 18:07

über ein macro kann ich nicht prüfen ob ein ordner oder datein exestieren und ihc kann keine werte über ein formular einlesen. oder doch??
Mein kleines Projekt
-Cruel Online-
 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

14 Zum Seitenanfang

Donnerstag, 20. November 2008, 10:25

Hallo,

du solltst ja den Makro-Recorder auch nur nutzen, um an die Syntax zu kommen ;-)

Hier mal eine Sub zum löschen der Inhalte einer ganzen Tabelle, ohne jedoch die omate zu löschen:

Quellcode

1
2
3
4
5
6
7
8
9
10
Sub Makro1()
'
' Makro1 Makro
' Makro am 20.11.2008 von Privat aufgezeichnet
'

'
    Cells.Select
    Selection.ClearContents
End Sub
Viele Grüße
Anja
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

15 Zum Seitenanfang

Donnerstag, 20. November 2008, 11:41

danke das funktioniert nun wunderbar, also das überschreiben jedoch bleibt das layout nicht gleich es ändert sich wie zuvor. vllt habe ich ja ein parameter vergessen anzugeben?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Set shFirstQtr = Workbooks(2).Worksheets(4)
Worksheets(4).Activate
Cells.Select
Selection.ClearContents
Set qtQtrResults = shFirstQtr.QueryTables _
    .Add(Connection:="TEXT;" + txtdatei2 + "", _
        Destination:=shFirstQtr.Cells(1, 1))
With qtQtrResults
    .TextFileParseType = xlDelimited
    .TextFileSpaceDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileOtherDelimiter = ":"
    .Refresh
End With


mfg
Mein kleines Projekt
-Cruel Online-
 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

16 Zum Seitenanfang

Donnerstag, 20. November 2008, 12:06

Hi,

versuche mal in der with noch folgendes einzubauen:

.PreserveFormatting = True //sollte verhindern, dass das Format geändert wird
.AdjustColumnWidth = False //sollte verhindern, dass Spaltenbreiten angepasst werden
Viele Grüße
Anja
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 997

 

17 Zum Seitenanfang

Donnerstag, 20. November 2008, 12:15

bäääääm!!! vielen dank du bist ein VBA gott:D nun ist da nur noch ein ganz kleines fehler. aber ich muss erstmal von meinem vorgesetzten erfahren nach welchen parametern ich zusätzlich importieren soll

MFG


EDIT: Programm erstellt keine fehler mehr vielen dank anjas
Mein kleines Projekt
-Cruel Online-

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »cccpmik« (20. November 2008, 14:25)

 

anjas

Tripel-As

Dabei seit: 14.10.2008

Beiträge: 237

 

18 Zum Seitenanfang

Donnerstag, 20. November 2008, 15:19

Hi,

super das es geklappt hat....Danke für die Rückmeldung!
Viele Grüße
Anja
 

Ähnliche Themen