Excel 2007 Makro/VBA erstellen um daten aus Eingabemaske auszulesen

JCarax87

Newbie
Registriert
März 2013
Beiträge
4
Hallo,

nachdem ich in der Suchfunktion nichts ähnliches gefunden habe, folgend meine Problemstellung:

Ich habe eine Eingabemaske erstellt aus der Informationen sobald vollständig eingegeben durch Drücken des Makrobuttons in ein anderes Tabellenblatt exportiert werden. Soweit hat meine Makroaufzeichnung funktioniert.

Mein Problem ist nun, dass die Daten bei jeder neuen Eingabe in die Maske immer an die gleiche Stelle exportiert werden und somit die Daten von zuvor überschrieben werden.
Kann ich durch eine Möglichkeit bei jeder nachfolgenden Eingabe "x" Zeilen weiter unten in die Zieltabelle exportieren um dies zu vermeiden ?(Beispielsweise mit Dokumentation in der Eingabemaske. Wenn in Zelle y eine 1 ist dann exportiere in Zeile 3; bei 2 in Zelle Y in zeile 30; bei 3 in Zelle Y in Zeile 60 usw. )

Als Anmerkung: Da die Daten die ich auslesen will vieleInformationen beinhalten brauche ich immer mehr als eine Zeile an Platz in der Zieltabelle.

Zusätzlich wäre es sehr hilfreich wenn ich in der Eingabemaske auswählen kann in welches Tabellenblatt der Mappe die Daten exportiert werden, da es sich um unterschiedliche Kundengruppierungen handelt. Ich dachte mir dass ich dafür ein Dropdown Menü in der Maske einrichte, in das ich die jeweilige Gruppierung eingebe und anhand dieser Eingabe die Daten in das jeweilige Tabellenblatt dirigiert werden. Ist auch dies möglich?

Ich hoffe ich konnte euch mein Problem deutlich erläutern.
Vielen Dank im Voraus für die Hilfe :)
 
Geht alles wunderbar.
Von Makros hab ich keine Ahnung....
Aber VBA hab ich das so schon programmiert.
Machste einfach ne Userform (Eingabemaske) und holst es dir von dort
und schreibst es da rein.
Brauchst halt dann die ein oder andere Schleife.
 
Vielen Dank für die Antwort,
wie würde das dann in etwa aussehen? Habe leider bis jetzt sehr wenig mit VBA zu tun gehabt. Insbesondere der Teil mit dem exportieren in verschiedene Tabellenblätter wäre sehr hilfreich.

viele Grüße Julian
 
Die Namen der Tabellenblätter kannst du so einlesen:
Code:
i = 1
While i <= ActiveWorkbook.Sheets.Count
    ComboBox1.AddItem ActiveWorkbook.Sheets(i).Name
    i = i + 1
Wend
ComboBox1 ist hier das DropDown in deinem Userform.

Die erste freie Zeile in einem Tabellenblatt kannst du danach so ermitteln:
Code:
erstefreiezeile = ActiveWorkbook.Sheets( ComboBox1.Value ).Range("A65535").End(xlUp).Row + 1
Hier wird direkt der ausgewählte Tabellenblattname aus dem DropDown verwendet.
 
Danke sehr für die Hilfe, werde nun versuchen das umzusetzen :-)
 
Ich bin irgendwie zu blöd die Auswahl der verschiedenen Tabellenblätter zum laufen zu bringen mit deinen Angaben :-(.

Wenn ich nichts ändere bekomme ich die Fehlermeldung "Objekt erforderlich".
Wenn ich bei "name" den Blattnamen der Eingabemaske eingebe, dann komme die Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht".

Was müsste ich den noch (namentlich) anpassen wenn ich deine Hilfe übernehme.

nochmals Danke für die Hilfeleistung!
 
z.b. so:
Worksheets("Kalkulation").Range("B3")

War 1 Sekunde googlen :-P
Ist auch von der Logik her etwas schwierig, wenn man noch nie programmiert hat (weiß nicht wie da deine Skills so sind :) )
Wirst auch ein paar "komplexe" Schleifen brauchen.
 
Ist denn auch eine Arbeitsmappe geöffnet? Wann wird der Code ausgeführt?
Der zweite Codeblock ist nur relevant, wenn nachher aus der Dropdown eine Auswahl getroffen wird.
 
Zurück
Oben