Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert aus Gui in anderes Tabellenblatt schreiben

Wert aus Gui in anderes Tabellenblatt schreiben
11.07.2016 19:03:28
Peter
Hallo,
ich habe ein kleines Problem.
Ich habe in Tabelle1 einen Knopf.
Wenn ich diesen drücke erscheint ein GUI und gibt mir 3 Eingabemöglichkeiten (alle notwendig sonst Fehler).
Diese eingebenen Werte möchte ich nun in der Tabelle Daten ablegen.
Nur muss hier geschaut werden wann die erste leere Zelle in Spalte A kommt.
In Spalte A, Index wird der erste Wert geschrieben
In Spalte B, Index wird der zweite Werte ... etc.
Meine Formel bis jetzt:
Sheets("Daten").Range("A" & 1).Select
Sheets("Daten").Range("A" & Rows.Count).End(xlUp).Select
Ersteleere = ActiveCell.Row + 1
Sheets("Daten").Range("A" & CStr(Ersteleere)).Value = varNachname
Sheets("Daten").Range("B" & CStr(Ersteleere)).Value = varAnrede
Sheets("Daten").Range("C" & CStr(Ersteleere)).Value = varFirma
Dies funktioniert auch. Jedoch nur so lange wie ich mich auch in der Tabelle "Daten" befinde.
Wenn ich das Makro - wie gewünscht - aus Tabelle1 starte kommt ein Fehler.
und zwar bereits hier: Sheets("Daten").Range("A" & 1).Select
ich vermute, dass es wohl an dem Select liegt, da ich ja nicht in dieser Tabelle bin.
leider habe ich erfolglos versucht das Select zu umgehen und einfach direkt meine Eingaben im GUI in die Tabelle zu speichern.
Kann mir hierbei jemand helfen`?
Grüße und Danke

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert aus Gui in anderes Tabellenblatt schreiben
11.07.2016 19:15:17
Daniel
HI
du liegst mit deiner Vermutung richtig, wenn du auf dem Sheet "Daten" eine Zelle selektieren willst, musst du erst das Sheet "Daten" aktivieren.
Aber das Selektieren ist nicht notwendig, du kannst die Variable "Ersteleere" auch direkt ermitteln:
Ersteleer = Sheets("Daten").Cells(Rows.count, 1).End(xlup).Row + 1
du kannst im folgenden den Code vereinfachen, wenn du Cells statt Range verwendest.
bei Cells kannst du Zeilen- und Spaltennummer einzeln als Zahl angeben, was für die Programmierung mit Variablen etwas einfacher ist:
Sheets("Daten").Cells(ErsteLeere, 1).value = varNachname
als Spaltendefinition sind aber auch die Spaltenbuchstaben zulässig, wenn das für dich übersichtlicher ist:
Sheets("Daten").Cells(ErsteLeere, "B").Value = varAnrede

du kannst sogar alle 3 Zuweisungen in einen Befehl packen:
Wichtig ist, dass du beim Resize genauso viele Spalten angibts, wie das Array Werte enthält.
Sheets("Daten").Cells(Ersteleere, 1).Resize(1, 3) = Array(varNachname, varAnrede, varFirma)

das funktioniert immer dann, wenn die zu befüllenden Zellbereiche direkt nebeneinander liegen.
Gruß Daniel

Anzeige
AW: Wert aus Gui in anderes Tabellenblatt schreiben
11.07.2016 21:09:41
Peter
Hi Daniel.
Super hat alles funktioniert.
ich habe tatsächlich fast alles probiert außer "Ersteleere" vor die Operation zu schreiben :-X

330 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige