Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1292to1296
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
Spalte mit bestimmten Eintrag finden
21.01.2013 16:03:45
Anito
Hallo zusammen,
ich habe ein Problem bzgl. meines Makros, welches eine neue Spalte einfügen soll. Nämlich soll das so geschehen, dass das Programm erstmal die Spalte finden soll, in der sich in der 6.Zeile der Eintrag "Budget befindet" (Die Position dieser Spalte ändert sich stetig). Danach soll links von dieser gefundenen einen neue leere Spalte eingefügt werden und anschließend noch ein bestimmter Eintrag in dieser neuen Spalte erfolgen. Ich habe bereits mehrere Ansätze gefunden, jedoch wird bei meinem Makro ein Laufzeitfehler angezeigt. Wo liegt genau mein Fehler?
Sub NeueSpalte()
Dim spBudget As Long 'SpaltenNr der Budget-Spalte
spBudget = ActiveSheet.Rows(6).Find(What:="Budget", Lookat:=x1whole).Column 'Suchen der Spalte  _
mit dem Eintrag "Budget"
Columns("spBudget:spBudget").Select 'Einfügen einer neuen Spalte links von der gefundenen  _
Spalte
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Dim vers As String      'Eintragen der Versionsnummer
vers = InputBox("Geben sie bitte die neue Versionsnummer ein:")
Cells(6, ActiveCell.Column).Select
ActiveCell = vers
End Sub
Viele Grüße
Anito

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte mit bestimmten Eintrag finden
21.01.2013 17:01:42
Peter
Hallo Anito,
so sollte es funktionieren:
Option Explicit
Sub NeueSpalte()
Dim spBudget  As Long    ' SpaltenNr der Budget-Spalte
Dim vers      As String  ' Eintragen der Versionsnummer
'     Suchen der Spalte mit dem Eintrag "Budget"
spBudget = ActiveSheet.Rows(6).Find(What:="Budget", Lookat:=xlWhole).Column
'     Einfügen einer neuen Spalte links von der gefundenen Spalte
Columns(spBudget).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
vers = InputBox("Geben sie bitte die neue Versionsnummer ein:")
Cells(6, spBudget) = vers
End Sub

Gruß Peter

Anzeige
AW: Spalte mit bestimmten Eintrag finden
22.01.2013 09:26:56
Anito
Danke Peter, so klappt es wunderbar. Ich hätte jetzt noch ein zusätzliches Problem, und zwar würde ich dieses Makro gerne für alle Tabellenblätter ausführen (17 insgesamt). D.h. dass man nur einmal die Versionsnummer eingeben muss und es das für alle Tabellenblätter analog durchführt mit dem Einfügen und Eintragen. Ich habe zwar einige Ansätze gefunden, jedoch will das nicht so klappen, wie ich es mir vorstelle. Bei diesem Code werden die anderen Tabellenblätter garnicht berücksichtigt und man muss 17 mal die Versionsnummer eingeben. Wahrscheinlich ist es nur eine kleine Änderung damit es so klappt:
Option Explicit
Sub NeueSpalte()
Dim objWorkSheet As Worksheet
For Each objWorkSheet In ActiveWorkbook.Worksheets
With objWorkSheet
Dim spBudget  As Long    ' SpaltenNr der Budget-Spalte
Dim vers      As String  ' Eintragen der Versionsnummer
'     Suchen der Spalte mit dem Eintrag "Budget"
spBudget = ActiveSheet.Rows(6).Find(What:="Budget", Lookat:=xlWhole).Column
'     Einfügen einer neuen Spalte links von der gefundenen Spalte
Columns(spBudget).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
vers = InputBox("Geben sie bitte die neue Versionsnummer ein:")
Cells(6, spBudget) = vers
End With
Next
End Sub
Viele Grüße

Anzeige
AW: Spalte mit bestimmten Eintrag finden
24.01.2013 08:31:33
Matze
Hallo Anito,
das Makro arbeitet nun mit "JEDEM" Tabellenblatt den Code ab
Sub NeueSpalte()
Dim spBudget  As Long    ' SpaltenNr der Budget-Spalte
Dim vers      As String  ' Eintragen der Versionsnummer
Dim sh As Worksheet
vers = InputBox("Geben sie bitte die neue Versionsnummer ein:")
For Each sh In ActiveWorkbook.Worksheets
sh.Activate
'     Suchen der Spalte mit dem Eintrag "Budget"
spBudget = ActiveSheet.Rows(6).Find(What:="Budget", Lookat:=xlWhole).Column
'     Einfügen einer neuen Spalte links von der gefundenen Spalte
Columns(spBudget).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(6, spBudget) = vers
Next sh
End Sub
Wenn du andere Tabellenblätter hast die da nicht betroffen sind muss die For Schleife geänder werden.
Gruß Matze

Anzeige
AW: Spalte mit bestimmten Eintrag finden
25.01.2013 15:26:46
Anito
Hallo Matze,
danke, so klappt es für jedes Tabellenblatt. Um noch mal auf deinen letzten Satz zurückzukommen: Wie muss ich dass konkret in die For-Schleife einbauen, wenn ich ein bestimmtes Tabellenblatt auschließen will? (bei mir ist es das erste Tabellenblatt und es heißt in meinem Fall "Gesamt")
Viele Grüße
Anito

AW: Spalte mit bestimmten Eintrag finden
26.01.2013 01:04:35
Matze

Sub Neue()
Dim spBudget  As Long    ' SpaltenNr der Budget-Spalte
Dim vers      As String  ' Eintragen der Versionsnummer
Dim i As Long
vers = InputBox("Geben sie bitte die neue Versionsnummer ein:")
Sheets(2).Select 'hier das erste Blatt bestimmen- anpassen
For i = 2 To Sheets.Count 'ab dem 2ten Blatt - anpassen
Sheets(i).Activate
'     Suchen der Spalte mit dem Eintrag "Budget"
spBudget = ActiveSheet.Rows(6).Find(What:="Budget", Lookat:=xlWhole).Column
'     Einfügen einer neuen Spalte links von der gefundenen Spalte
Columns(spBudget).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(6, spBudget) = vers
Next i
End Sub
Matze
Anzeige

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige