If-Anweisung modifizieren. Aber wie?
#1
Question 
Hallo :)
Ich bin ganz neu hier und habe die Suchfunktion auch schon bemüht doch ist mir für mein "Problem" nichts richtiges untergekommen oder ich habe einfach die falschen Suchbegriffe verwendet. Dafür möchte ich mich jetzt schon entschuldigen.

Folgendes Szenario:
Ich habe eine Arbeitsmappe in die ich die gewünschten Daten per Formular in eine andere (geöffnete) Arbeitsmappe eingebe. Was auch recht gut funktioniert. Hier kommen wir nun zu meinem Problem.

Der Befehl sieht folgendermaßen aus:


Code:
Private Sub CommandButton1_Click()

Dim i As Integer

If cbZ.Value = "TABELLENNAME1" Then Workbooks("DATEINAME").Sheets("TABELLENNAME1").Activate
...
...
...
With ActiveSheet
    i = .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    .Cells(i, 1).Value = Me.cbD.Value
    .Cells(i, 2).Value = Me.cbP.Value
    .Cells(i, 3).Value = Me.txtB.Value
    .Cells(i, 4).Value = Me.txtK.Value
End With

End Sub

So wie der Befehl jetzt aussieht kann ich nur die Tabellen einer einzigen Datei ansprechen ohne den Code auf eine neue Datei anzupassen.
Wie müsste die IF-Anweisung aussehen wenn ich anstatt die Namen im Code einzugeben diese aus einem Zellenbereich beziehen will die sich in der selben Arbeitsmappe befinden? Pro Arbeitsmappe sind zwischen 6-12 Tabellenblätter geplant.

Die Comboboxen cbZ, cbD und cbP erhalten ihren Inhalt aus einem Zellenbereich in der Arbeitsmappe. Diesen Inahlt kann ich also ändern indem ich den Zellenbereich bearbeite. Ich kann aber leider keine funktonierende Möglichkeit finden das in die IF-Anweisung zu packen und bitte euch deshalb um Hilfe.

Ich hoffe meine Anfrage ist einigermaßen verständlich.

Liebe Grüße, Merlin310
Top
#2
Moin,

wenn ich richtig interpretiere -> schau dir mal den Application.Caller an:

M$:
https://docs.microsoft.com/de-de/office/...ion.caller

Herber:
http://www.herber.de/forum/archiv/156to1...aller.html
Top
#3
Hallo,

hier wird das Ziel festgelegt:

Code:
If cbZ.Value = "TABELLENNAME1" Then Workbooks("DATEINAME").Sheets("TABELLENNAME1").Activate

"Activate" ist (fast immer) verzichtbar, aber das gewünschte Ziel muss dort ausgewählt und richtig referenziert werden.

Die Beschreibung reicht nicht für einen konkreten Vorschlag, aber Du solltest wissen, wie man Variablen einsetzt. Z.B.

Code:
Dim WB as Workbook
Q1 = "Dateiname"
set wb = workbooks(Q1)
with WB.Sheets(cbZ.Value)

mfg

(ungeprüft)
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Merlin310
Top
#4
Hallo

Code:
Private Sub CommandButton1_Click()
Dim i As Integer

If cbZ.Value = "TABELLENNAME1" Then
With Workbooks("DATEINAME").Sheets("TABELLENNAME1")
   i = .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
   .Cells(i, 1).Value = Me.cbD.Value
   .Cells(i, 2).Value = Me.cbP.Value
   .Cells(i, 3).Value = Me.txtB.Value
   .Cells(i, 4).Value = Me.txtK.Value
End With
End If
End Sub

mfg Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Merlin310
Top
#5
Ich danke euch herzlich für eure Lösungansätze.
Mein Problem konnte gelöst werden.

Liebe Grüße Merlin310
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste