Dim kostenstelle As String Dim tempspalte As Range
Private Sub CommandButton1_Click() Call spalteeinfuegen Call nameneinfuegen
End Sub
Sub spalteeinfuegen() Set cl = Worksheets("Tabelle1").Range("1:1").Find(kostenstelle) 'Suche der Kostenstelle in der Tabelle1 If Not cl Is Nothing Then cl.EntireColumn.Insert Shift:=xlToLeft 'Einfügen der Tabelle auf der linken Seite und Abbruch falls er den Eintrag nicht findet End Sub Sub nameneinfuegen() Set cl = Worksheets("Tabelle1").Range("1:1").Find("") Sheets("Tabelle1").Range("1:1").Value = UserForm1.TextBox1.Value End Sub
Private Sub OptionButton1_Click() kostenstelle = "10713 Geschulte MA" End Sub
Private Sub OptionButton10_Click() kostenstelle = "10892 Geschulte MA" End Sub
Private Sub OptionButton11_Click() kostenstelle = "10894 Geschulte MA" End Sub
Private Sub OptionButton2_Click() kostenstelle = "10714 Geschulte MA" End Sub
Private Sub OptionButton3_Click() kostenstelle = "10726 Geschulte MA" End Sub
Private Sub OptionButton4_Click() kostenstelle = "10727 Geschulte MA" End Sub
Private Sub OptionButton5_Click() kostenstelle = "10741 Geschulte MA" End Sub
Private Sub OptionButton6_Click() kostenstelle = "10888 Geschulte MA" End Sub
Private Sub OptionButton7_Click() kostenstelle = "10837 Geschulte MA" End Sub
Private Sub OptionButton8_Click() kostenstelle = "10666 Geschulte MA" End Sub
Private Sub OptionButton9_Click() kostenstelle = "10853 Geschulte MA" End Sub
Private Sub UserForm_Click()
End Sub
Hi zusammen
Ich habe folgenen stupiden, aber funktionierenden Code. Mittels einer User Form fügt es eine neue Spalte ein und dies jeweils der zugeordneten Kostenstelle (Gruppe). Ich möchte nun mit der neuen Spalte auch in der ersten Zeile den Namen aus der TextBox einfügen. Das Problem ist das sich die Spalten jeweils aufs neue ändern, so dass ich die Benennung irgendwie mit der neuen Spalte kombinieren muss. Nur wie mach ich das?
Ich wäre froh, wenn mir jemand ein zwei Tipps geben könnte, da ich mich nur langsam daran taste.
am einfachsten dürfte es sein denn unteren Code leicht aendern und auf das Makro "Name einfügen zu verzichten" Der Suchlauf nach c1 hat ja dıe richtıge Zelle gefunden! Nach dem Insert Column + 1, einfach über Cells() einfügen!
mfg Gast 123
Code:
Sub spalteeinfuegen() Set cl = Worksheets("Tabelle1").Range("1:1").Find(kostenstelle) 'Suche der Kostenstelle in der Tabelle1 If Not cl Is Nothing Then cl.EntireColumn.Insert Shift:=xlToLeft 'Einfügen der Tabelle auf der linken Seite und Abbruch falls er den Eintrag nicht findet Cells(c1.Column + 1, 1) = UserForm1.TextBox1.Text End If End Sub
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • Moby2018
Danke für die Antwort. Der Code funktioniert bei mir leider nicht. Ich hab noch die UserForm1 auf UserForm4 gewechselt. Aber der Fehler liegt wohl woanders.
Weshalb nimmst du Cells(c1.Column + 1, 1) müsste das nicht mit der Such-Einfügen-Funktion gekoppelt sein? :92:
Bzw ich überleg mir die neu eingefügte Spalte zu aktivieren und den Text dann in die aktive Spalte einzufügen oder ein anderer Ansatz wäre den gleichen Code (wie um die Spalte einzufügen) zu wiederholen und anstatt eine ganze Spalte füge ich nur in der ersten Zeile den Text aus der TextBox ein. :92: :69:
Dim kostenstelle As String Dim tempspalte As Range
Private Sub CommandButton1_Click() Call spalteeinfuegen Call aktivate Call nameneinfuegen
End Sub
Sub spalteeinfuegen() Set cl = Worksheets("Tabelle1").Range("1:1").Find(kostenstelle) 'Suche der Kostenstelle in der Tabelle1 If Not cl Is Nothing Then cl.EntireColumn.Insert Shift:=xlToLeft 'Einfügen der Tabelle auf der linken Seite und Abbruch falls er den Eintrag nicht findet End Sub Sub aktivate() Set cl = Worksheets("Tabelle1").Range("1:1").Find(kostenstelle) 'Suche der Kostenstelle in der Tabelle1 If Not cl Is Nothing Then cl.EntireColumn.Activate Shift:=xlToLeft 'Aktivieren der eingefügten Spalte Abbruch falls er den Eintrag nicht findet End Sub Sub nameneinfuegen() Set cl = Worksheets("Tabelle1").Range("1:1").Find(AktiveCell) 'Suche der aktiven/aktivierten Spalte/Zelle If Not cl Is Nothing Then Worksheets(ActiveCell).Insert = UserForm4.TextBox1.Text 'Einfügen des Textes aus dem TextBox4
End Sub
Irgendwie so, aber das Shift:=xlToLeft ist ja auch nicht ganz korrekt und beim Namen einfügen hab ich immer noch nicht die genaue Zelle...
Dim kostenstelle As String Dim tempspalte As Range
Private Sub CommandButton1_Click() Call spalteeinfuegen 'Call konfigurieren
End Sub
Sub spalteeinfuegen() Set zelle_kostenstelle = Worksheets("Tabelle1").Range("1:1").Find(kostenstelle) 'Suche der Kostenstelle in der Tabelle1 If Not zelle_kostenstelle Is Nothing Then zelle_kostenstelle.EntireColumn.Insert Shift:=xlToLeft 'Einfügen der Tabelle auf der linken Seite und Abbruch falls er den Eintrag nicht findet Worksheets("Tabelle1").Cells(1, zelle_kostenstelle.Column - 1) = UserForm4.TextBox1.Text 'Worksheets("Tabelle1").Cells ("D2") End If End Sub
'Sub konfigurieren() 'Dim aktuellecheckbox(1 To 24) As Single
Sorry das ich mich erst jetzt melde, und merke gerade einen dummen Fehler in: Cells(c1.Column +1, 1) !!! Cells(1, c1.Column +1) ist natürlich richtig! Habe dummerweise in der Eile Zeilen und Spalten vertauscht!!
Die Antwort ist hier, in deinem Code: Set cl = Worksheets("Tabelle1").Range("1:1").Find(kostenstelle) Da wird ja mit Find bereit die Kostenstelle gefunden! Die Set Variable kennt die Adresse, und die Spalte als Zahl. Man sollte nur nicht Zeilen und Spalten im Code vertauschen! Ich hoffe ich konnte weiterhelfen!!