Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
gruß
Marco
Antworten 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
Antworten 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
Antworten Top
#5
Ich danke euch herzlich für eure Lösungansätze.
Mein Problem konnte gelöst werden.

Liebe Grüße Merlin310
Antworten Top


Gehe zu:


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