Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variables Tabellenblatt auswählen

Variables Tabellenblatt auswählen
16.10.2023 12:27:37
Sandra
Hallo Zusammen,

ich hab hier schon viel über Variablen gelernt, aber in Fleisch und Blut ist es mir noch nicht übergegangen.

Ich hab zwei Tabellenblätter Dim01A und Dim01B. Auf beiden Tabellenblätter überwache ich zwei Zellen mit einem Private Sub, was auch gut funktioniert.

Jetzt soll aus einer Textbox auf einer Userform ein Wert in eine Zeile übergeben werden.
Wenn Dim01A aktiv ist, soll der Wert in die Zelle P12 eingetragen, werden und wenn Dim01B aktiv ist in die Zelle P16.

Hab es mit folgendem Code probiert, allerdings wird dann immer das Blatt Dim01A aktiviert.

Private Sub CMB_Wert_Click()
Zellen_freigeben
If Sheets("Dim01A").Activate Then

Range("P12").Value = TextBox_Sohlsprung.Value

Else
Range("P16").Value = TextBox_Sohlsprung.Value

End If
Unload Me
End Sub

Aber ich glaube, dass ich irgendwo noch die Variable definieren muss.
Dim Blattname as Worksheet

das hat allerdings nicht funktioniert, weil ich mal wieder nicht wusste, wie ich diese anspreche.

Danke schonmal für Eure Hilfe.

Vg
Sandra

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variables Tabellenblatt auswählen
16.10.2023 12:36:29
onur
Kein Wunder, denn du schreibst ja:
If Sheets("Dim01A").Activate
Auf Deutsch:
Wenn Blatt "Dim01A" AKTIVIERE
Du jedoch solltest FRAGEN, welches Blatt aktiv ist - z.B. so:
If ActiveSheet.Name="Dim01A"
AW: Variables Tabellenblatt auswählen
16.10.2023 12:38:02
Uduuh
Hallo,
Private Sub CMB_Wert_Click()

Zellen_freigeben
If ActiveSheet Is Sheets("Dim01A") Then

Range("P12").Value = TextBox_Sohlsprung.Value

Else
Range("P16").Value = TextBox_Sohlsprung.Value

End If
Unload Me
End Sub

Gruß aus'm POtt
Udo
AW: Variables Tabellenblatt auswählen
16.10.2023 12:55:54
Sandra
@ udo und @onur : Danke auch euch für Eure Mühe.
Anzeige
AW: Variables Tabellenblatt auswählen
16.10.2023 12:45:45
Yal
Hallo Sandra,

ein Spatz in der Hand ist besser als ein Tauben auf dem Dach.
In Programmiersprache heisst es: übergebe was Du jetzt mit Genauigkeit weisst, anstatt anschliessend zu versuchen zu ermitteln, was der Zustand war.

Also, wenn Du den Formular startest, befindest Du auf einem Blatt. Je nach dem wie es gestartet wird, gibt es meistens die Möglichkeit abzufangen, woher die Aktion gestartet ist:
_ ein Schalter ja Blatt, dann Schaltername oder Parent (=Worksheet wo der Schalter ist) abfangen und dem Formular weitergeben (über eine globale Variable, also eine nicht private Variable in einem normalen Module)
_ oder Ereignisprozedure, was entweder Blatt-bezogen (dann weiss man wer) oder Arbeitsmappe-global, aber dann der "Caller" (aka Worksheet) wird übergeben.

Ausserdem "Activate" ist eine Aktion, die ein Blatt aktiviere. Was Du haben möchtest ist:
Private Sub CMB_Wert_Click()

Zellen_freigeben
Select Case ActiveSheet.Name
Case "Dim01A"
Range("P12").Value = TextBox_Sohlsprung.Value
Case "Dim10B"
Range("P16").Value = TextBox_Sohlsprung.Value
Case Else
MsgBox "Keine Aktion."
End Select
Unload Me
End Sub

(poste deinen Code mithilfe von "Code &lkt;pre..." Achte auf sauberes Einrücken. Besser als Leerzeilen dazwischen)

VG
Yal
Anzeige
AW: Variables Tabellenblatt auswählen
16.10.2023 13:01:06
daniel
Hi
es wurden ja schon einige Möglichkeiten gezeigt.
ich persönlich würde die Select-Case-Variante bevorzugen.

aber hier noch was für Fortgeschrittene:

dim EinfügeZiel as object

set EinfügeZiel = CreateObject("Scripting.Dictionary")
EinfügeZiel("Dim01A") = "P12"
EinfügeZiel("Dim01B") = "P16"

...
...
' wenn es nur diese zwei Blätter in der Mappe gibt reicht das:
Range(EinfügeZiel(ActiveSheet.Name)).Value = TextBox_Sohlsprung.Value
'sollte es mehrere Blätter geben, dass so zur Vermeidung des Fehlers, wenn ein anderes Blatt aktiv ist:
if EinfügeZiel.Exists(ActiveSheet.Name) Then Range(EinfügeZiel(ActiveSheet.Name)).Value = TextBox_Sohlsprung.Value


Gruß Daniel
Anzeige
AW: Variables Tabellenblatt auswählen
16.10.2023 22:35:54
GerdL
Hallo,

noch eins.
Private Sub CMB_Wert_Click()

Range("P16").Offset(4 * (Right(ActiveSheet.Name, 1) = "A")) = TextBox_Sohlsprung
End Sub

Gruß Gerd
AW: Variables Tabellenblatt auswählen
16.10.2023 13:03:31
Sandra
Hallo Daniel,
ok, das ist tatsächlich was für Fortgeschrittene aber danke. :-)
AW: Variables Tabellenblatt auswählen
16.10.2023 12:54:54
Sandra
Hallo Yal,

danke für die Erläuterung.
Das hat gut funktioniert!

..aber was ist das:"Code &lkt;pre..."
VG
Sandra
AW: Variables Tabellenblatt auswählen
16.10.2023 13:04:50
daniel
Das meint:
wenn du hier Code einfügst, markiere den VBA Code und drücke den Button "Code &ltpre&gt&ltcode&gt"
dein VBA-Code wird dann ähnlich wie im Editor in Courier und mit deinen Einrückungen dargestellt, was den Code leserlicher macht als wenn er wie normaler Fließtext angezeigt wird.

Den Effekt, was dieser Button bewirkt, siehst du in den Antworten.

Gruß Daniel
Anzeige
AW: Variables Tabellenblatt auswählen
16.10.2023 13:06:45
Sandra
danke,...

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige