VBA und Excel
Hi leute ich habe ein kleine problem
(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
(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-
-Cruel Online-
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (18. November 2008, 11:56)
Hallo,
ich weiß nicht ob ich dein problem richtig verstandenhabe....aber.....
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":
VBA-Makro in Excel:
Gruß
Anja
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
Anja
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »anjas« (18. November 2008, 15:46)
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
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-
-Cruel Online-
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »cccpmik« (19. November 2008, 10:30)
Hallo,
Die Tabelle in der was eingefügt werden soll muss leer sein!
Es wird in die aktuelle Tabelle eingefügt.
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
definiert.
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ß
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
|
|
|
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
Anja
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
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-
-Cruel Online-
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »cccpmik« (19. November 2008, 12:09)
Hallo,
das Makro arbeitet grds. in der gerade geöfneten Arbeitsmappe.
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.
Sorry, aber meine Glaskugel ist derzeit defekt ;-) WAS klappt nicht??
Gruß
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
Anja
ok es hat sich eigentlich erledigt ich konnte alles so kopieren wie ich es wollte mit dem code:
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
|
|
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-
-Cruel Online-
Hi,
zu 1.) kannst du nicht hingehen und vor dem insert zunächst die Tabelle leeren?
zu 2.) puhhh auf anhieb nicht
schon klar, deswegen habich auchnicht nach Dateien gefragt sondern nur darauf hingewiesen, dass ohne rechts chwierig ist ;-))
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
Anja
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??
vielen dank im vorraus
vielen dank im vorraus
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Hi,
mein alter Lehrer sagte immer....learning by doing
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
mein alter Lehrer sagte immer....learning by doing
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
Viele Grüße
Anja
Anja
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-
-Cruel Online-
ü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-
-Cruel Online-
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:
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
Anja
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?
mfg
|
|
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-
-Cruel Online-
bäääääm!!! vielen dank du bist ein VBA gott
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
nun ist da nur noch ein ganz kleines fehler. aber ich muss erstmal von meinem vorgesetzten erfahren nach welchen parametern ich zusätzlich importieren sollMFG
EDIT: Programm erstellt keine fehler mehr vielen dank anjas
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »cccpmik« (20. November 2008, 14:25)
Ähnliche Themen
-
Sonstige Programmiersprachen »-
vba in excel frage!
(4. Juli 2008, 08:23)
-
Flash »-
SWF in Excel
(23. April 2008, 17:25)
-
Sonstige Programmiersprachen »-
vba: AutoOpen() bei Excel
(18. Februar 2004, 08:11)
-
Newbies »-
Textfile mit Datum
(1. August 2003, 16:14)
-
Archiv: Software »-
Excel Problem
(15. Februar 2003, 16:13)


