Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1456to1460
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

In verschiedenen Sheets in Abhämgigkeit von etwas

In verschiedenen Sheets in Abhämgigkeit von etwas
12.11.2015 09:33:33
etwas
Hallo liebe Excel-Experten,
ich habe (mal wieder) ein Problem und brauche eure Hilfe.
In meiner UserForm habe ich ComboBoxen, TextBoxen etc., dessen Inhalt durch ein klicken auf den Button 'Speichern' auf meine Exceltabelle übertragen werden.
In meiner ComboBox5 kann man "Nov/HDL/MEX/CHN" auswählen.
Jetzt soll er machen:
Wenn NOV ausgewählt wird, dann alle KomboBoxen & Textboxen in Babellenblatt1 (Novaky) übertragen
Wenn HDL ausgewählt wird, dann alle KomboBoxen & Textboxen in Babellenblatt3 (Haldensleben) übertragen
Wenn MEX ausgewählt wird, dann alle KomboBoxen & Textboxen in Babellenblatt4 (Mexico) übertragen
Wenn CHN ausgewählt wird, dann alle KomboBoxen & Textboxen in Babellenblatt5 (China) übertragen
Ich hoffe Ihr versteht mein Problem und könnt mir vllt sogar helfen.
Hier mein bisheriger Code für den Speicherbutton:

Private Sub CommandButton1_Click()
If Trim(CStr(TextBox1.Text)) = "" Then
MsgBox "Sie müssen einen Kunden eingeben!", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub
End If
If Trim(CStr(TextBox2.Text)) = "" Then
MsgBox "Sie müssen eine Bauteilbezeichnung eingeben!", vbCritical + vbOKOnly, "FEHLER! _
_
_
_
Exit Sub
End If
If Trim(CStr(ComboBox3.Text)) = "" Then
MsgBox "Sie müssen einen Status auswählen!", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub
End If
If Trim(CStr(ComboBox2.Text)) = "" Then
MsgBox "Sie müssen eine Schaumart auswählen!", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub
End If
Dim bolFound As Long
Dim i As Long
For i = 12 To 143
bolFound = bolFound Or Controls("TextBox" & i)  ""
Next i
If Not bolFound Then
MsgBox "Es müssen Stückzahlen eingegeben werden"
Exit Sub
End If
Dim ZeileMax As Long
Dim Zeile As Long
Dim loSpalte As Long
With Tabelle1
ZeileMax = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)   'letzte belegte Zeile in Spalte A (1)
Zeile = ZeileMax + 1
.Range("A" & Zeile).Value = Me.TextBox1.Value
.Range("B" & Zeile).Value = Me.TextBox2.Value
.Range("C" & Zeile).Value = Me.TextBox3.Value
.Range("D" & Zeile).Value = Me.ComboBox3.Value
.Range("E" & Zeile).Value = Me.TextBox4.Value
.Range("F" & Zeile).Value = Me.ComboBox5.Value
If OptionButton1.Value Then
.Range("G" & Zeile).Value = ""
End If
If OptionButton2.Value Then
.Range("G" & Zeile).Value = "Folie"
End If
.Range("H" & Zeile).Value = Me.ComboBox2.Value
.Range("I" & Zeile).Value = Me.ComboBox1.Value
.Range("J" & Zeile).Value = Me.ComboBox4.Value
.Range("K" & Zeile).Value = Me.TextBox6.Value
.Range("L" & Zeile).Value = Me.TextBox7.Value
.Range("M" & Zeile).Value = Me.TextBox8.Value
.Range("N" & Zeile).Value = Me.TextBox9.Value
.Range("O" & Zeile).Value = Me.TextBox10.Value
.Range("P" & Zeile).Value = Me.TextBox11.Value
'Jahr 2016 - 2026: eintragen der Monatsstückzahlen
For loSpalte = 18 To 149
.Cells(Zeile, loSpalte) = Me.Controls("TextBox" & loSpalte - 6).Value
Next loSpalte
.Range("A4:P4").Copy
.Range("A" & Zeile).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Range("R4:ES4").Copy
.Range("R" & Zeile).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Range("EU4:JV4").Copy
.Range("EU" & Zeile).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Range("EU4:JV4").Copy
.Range("EU" & Zeile).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Range("PF4:UG4").Copy
.Range("PF" & Zeile).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Range("PF4:UG4").Copy
.Range("EU" & Zeile).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End With
ThisWorkbook.Save
End Sub

Gruß
Jan

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In verschiedenen Sheets in Abhämgigkeit von etwas
12.11.2015 09:46:08
etwas
Moin
Mit Case
Dim loSpalte As Long
'---dazwischen
Dim wksZ As String
Select Case Combobox5.Value
Case "Nov": wksZ = "Novaky"
Case "HDL": wksZ = "Haldensleben"
Case "MEX": wksZ = "Mexico"
Case "CHN": wksZ = "China"
End Select
With Worksheets(wksZ)
'--und weiter

gruss hary

In verschiedenen Sheets in Abhämgigkeit von etwas
12.11.2015 10:04:08
etwas
Danke Hary. In deinem Fall kommt bei mir aber die Fehlermeldung, dass ein End With erwartet wird?
Gruß Jan

AW: In verschiedenen Sheets in Abhämgigkeit
12.11.2015 09:52:44
EtoPHG
Hallo Jan,
Unter den Voraussetzungen, dass a) die Tabellenblätter so wie in der Beschreibung erwähnt benannt sind und b) Alle die gleichen Zellenstruktur (für die Zielzellen) aufweisen, dann nach diesem Muster:
...
Dim wsZiel As Worksheet
Select Case ComboBox5
Case "NOV": Set wsZiel = ThisWorkbook.Worksheets("Novaky")
Case "HDL": Set wsZiel = ThisWorkbook.Worksheets("Haldensleben")
Case "MEX": Set wsZiel = ThisWorkbook.Worksheets("Mexico")
Case "CHN": Set wsZiel = ThisWorkbook.Worksheets("China")
End Select
If wsZiel Is Nothing Then
MsgBox "Zielblatt nicht gefunden!", vbCritical
Exit Sub
Else
With wsZiel
'...füll die Felder ab
End With
End If
...
Gruess Hansueli

Anzeige
AW: In verschiedenen Sheets in Abhämgigkeit von
12.11.2015 10:18:57
EtoPHG
Hallo Jan,
Du darfst dein Hirn auch einschalten.
Warum heissen deine Tabellen "Hund", "Katze" etc. und du benutzt dann "Tabelle1", "Tabelle2" ...
und Tabelle1 (ohne Quotes) ist in unseren Vorschlägen nirgends mehr erwähnt.
Was sollen wir also mit deinem Beispiel?
Einen fixfertigen Code liefern, den du dann wieder nicht verstehst, bzw. auf dein Original umsetzen kannst?
Ich hab in meiner Antwort, die Voraussetzungen für das funktionieren explizit erwähnt!
Gruess Hansueli

Anzeige
AW: In verschiedenen Sheets in Abhämgigkeit von
12.11.2015 10:34:39
Jan
Hi Hansueli,
ich habe natürlich beides ausprobiert und es hat nicht funktioniert (wie gesagt, ich bin ein Neuling und muss daher viel rumprobieren). Ich habe die vereinfachte Variante geschickt, weil meine eigentliche UserForm schon sehr umfangreich ist und ich gedacht habe, dass es so etwas einfacher und übersichtlicher ist ;)
Auch bei deiner Variante habe ich beides ausprobiert. Wobei ich aber deine Notiz
"...Füll die Felder ab"
nicht verstehe.
Daher kommt dann bei mir natürlich die msgBox "Zielblatt nicht gefunden"
Ich hoffe ich habe dich jetzt nicht zu sehr "verärgert", dass du nicht mehr antwortest.
Gruß Jan

Anzeige
AW: In verschiedenen Sheets in Abhämgigkeit von
12.11.2015 10:49:45
EtoPHG
Hallo Jan,
Nochmals zur Adressierung von Tabellenblättern in VBA:
With Tabelle1 : Referenziert das Tabellenblatt mit dem Codenamen Tabelle1. Der Codename ist derjenige wie du ihn im VBA-Explorer nicht in Klammern gesetzt siehst.
With Worksheets("Novizky") : Referenziert das Tabellenblatt mit dem Registernamen Novizky. Diesen Namen siehst du im VBA-Explorer in Klammern gesetzt, bzw. in den Sheet-Tabs der Mappe.
With Worksheets(3) : Referenziert das dritte Tabellenblatt wie es in der Registerreihenfolge angezeigt wird, unabhängig vom Code- oder Registernamen.
With wsZiel : Referenziert ein vorher richtig gesetztes [z.B. mit Set wsZiel = Worksheets("Novizky")] Worksheet-Objekt.
Mit "...Füll die Felder ab" hab ich gemeint: Setze deinen restlichen, bereits vorhandenen Code (nach deinem With Tabelle1 ) anstelle dieser (blöden) Bemerkung ein!
Gruess Hansueli

Anzeige
AW: In verschiedenen Sheets in Abhämgigkeit von
12.11.2015 11:09:39
Jan
Hallo Hansueli
Danke für die ausführliche Erklärung. Für das Verständnis war das sehr hilfreich. Das hatte ich zuvor auch schon probiert (ohne Erfolg), was anschließend auch der Grund für meine vereinfachte Version war. Jetzt habe ich endlich meinen Fehler gefunden... ich habe die falsche CombBox im Code beschrieben. Daher konnte es natürlich nicht funktionieren. Habe bei meinem langen Code den Wald vor lauter Bäumen nicht gesehen.
Sorry für die Verwirrung und vielen Dank für deine Geduld und Hilfe!!
Gruß Jan

AW: In verschiedenen Sheets in Abhämgigkeit von
12.11.2015 11:51:14
Jan
Hi Hansueli,
(kleines Problem mit dem Pc, deswegen nicht komplette Nachricht abgeschickt...)
Aber obwohl jetzt keine Fehlermeldung mehr auftaucht, trägt er egal was ich auswähle die Infos in die erste Liste ein
Private Sub CommandButton1_Click()
Dim ZeileMax As Long
Dim Zeile As Long
Dim wsZiel As Worksheet
Select Case ComboBox1
Case "Hund": Set wsZiel = ThisWorkbook.Worksheets("Hund")
Case "Katze": Set wsZiel = ThisWorkbook.Worksheets("Katze")
Case "Maus": Set wsZiel = ThisWorkbook.Worksheets("Maus")
End Select
If wsZiel Is Nothing Then
MsgBox "Zielblatt nicht gefunden!", vbCritical
Exit Sub
Else
With wsZiel
With Tabelle1
ZeileMax = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp). _
Row, .Rows.Count)   'letzte belegte Zeile in Spalte A (1)
Zeile = ZeileMax + 1
.Range("A" & Zeile).Value = Me.ComboBox1.Value
.Range("B" & Zeile).Value = Me.TextBox1.Value
.Range("C" & Zeile).Value = Me.TextBox2.Value
.Range("D" & Zeile).Value = Me.ComboBox3.Value
.Range("E" & Zeile).Value = Me.ComboBox2.Value
.Range("F" & Zeile).Value = Me.ComboBox3.Value
End With
End With
End If
End Sub
Private Sub UserForm_Activate()
With Me.ComboBox1
.AddItem "Hund"
.AddItem "Katze"
.AddItem "Maus"
End With
With Me.ComboBox2
.AddItem "Fleisch"
.AddItem "Vegetarisch"
End With
With Me.ComboBox3
.AddItem "Pedigree"
End With
End Sub

Hier der einfache Code. Ich habe das ansich soweit auch gut verstanden glaube ich. Aber das richtige machen tut er leider immer noch nicht.
Gruß Jan

Anzeige
AW: In verschiedenen Sheets in Abhämgigkeit von
12.11.2015 12:08:21
EtoPHG
Hallo Jan,
Zwischen Lesen und Verstehen lauert der tiefe Abgrund der Unfähigkeit.
Lösche endlich mal die Zeile With Tabelle1 und das zugehörige End With!
Gruess Hansueli

AW: In verschiedenen Sheets in Abhämgigkeit von
12.11.2015 12:17:03
Werner
Hallo Hansueli,
das habe sogar ich gesehen. Wollte gerade senden - du bist mir zuvor gekommen. Bin mit dem Tablet einfach zu langsam. ;-)
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige