Schleife VBA für Kopzeile

mircok

Grünschnabel
Hallo,

folgendes Problem habe ich:

In meiner Excel-Tabell habe ich in der 1.Zeile also von E1 bis K1
die Spaltenüberschriften.("2002 IST ,2003 IST, 2004 SOLL,2005 SOLL,2006 SOLL,2007 SOLL,2008 SOLL")
Also 2 IST Jahre und 5 SOlljahre.
Durch click auf einen Button, soll jetz mittels einer Do while Schleife nach der 1.Zelle in der spalte
gesucht werden in der Soll steht.
Ist diese gefunden, wird das 1.ISTjahr jeweils ausgeblendet und in der Spalte wo das SOLL gefunden wurde wird aus IST SOLL.
Am Ende Soll dafür eine weitere neue SOllspalte hinzu(Bsp.2010 SOLL).

Ich bin für jede Hilfe zu diesem Problem dankbar.
Mfg mirco
 
Das SOLL zu finden ist kein Problem mit
Code:
Range("1:1").Select
Selection.Find("SOLL").Select
An das erste IST kommst du demnach mit
Code:
Range("1:1").Select
Selection.Find("IST").Select
Da der letzte SOLL immer 4 Zellen vom ersten gefundenen SOLL entfernt sein sollte, kannst du den lezten SOLL finden mit
Code:
Range("1:1").Select
Selection.Find("SOLL").Select
ActiveCell.Offset(0, 4).Select

Das einfügen kannst du durch Makro aufzeichnen rausfinden...
 
danke geho für die tipps+code....

die methode find kannte ich noch nicht, ja damit hab ich jetz die jeweilige Zelle gefunden.
Nun soll da ganze aber in der Schleife ablaufen und wenn ich mit find die Zelle gefunden hab soll ja die 1.ausgeblendet werden.
Wie kann ich dann von der Zelle auf die Spalte kommen?
Ich muss ja glaub ich dann eine variable einfügen und dann
halt darüber die spalten ansprechen.

Wenn ich die Spalte gefunden habe soll ja "SOLL" zu "IST" werden.
Da komm ich auch nocht nicht so ganz weiter...
Die Hilfe des recorders nützt mir da nix
 
Probier mal diesen Code ansonnsten solltest du es dir daraus zusammenbasteln können.
Code:
   Dim JahresZahl as Variant

    'Findet die erste IST Zeile
    Sheets(1).Select
    Range("1:1").Select
    Selection.Find("IST").Select
    ActiveCell.EntireColumn.ColumnWidth = 0
    
    'Benennt IST in SOLL
    Range("1:1").Select
    Selection.Find("soll").Select
    ActiveCell.Value = Left(ActiveCell.Value, 4) & " IST"
    
    'Schreibt nach der letzten SOLL Zelle das kommende Jahr und SOLL
    Range("1:1").Select
    Selection.Find("soll").Select
    ActiveCell.Offset(0, 3).Select
    JahresZahl = ActiveCell.Value
    JahresZahl = Left(JahresZahl, 4)
    ActiveCell.Offset(0, 1).Value = JahresZahl + 1 & " SOLL"
 
danke Geho für den nützlichen Code, konnte das meiste davon in mein eines Sheet einbauen.
hab leider schon wieder ein ähnliches Problem,bei dem ich Hilfe brauch:
Durch Click auf Button soll jetz mittels einer
do while schleife die Zeile 1 durchgegangen werden und an der Stelle wo Soll(bsp. 2006 SOLL) steht stehengeblieben werden.

In der Zelle "B2" hab ich eine nicht sichtbare variable für den Spaltenindex.Als Anfangswert habe ich hier die 6 stehen,weil das erste mal Soll in Spalte G stehen kann.
Da sich jedes Jahr die Spalte des Solleintrages ändert muss der Wert in Zelle "B2" auch geändert werden.


Hier mal noch mein bisheriger Code(ist sicherlich ein wenig durcheinander)

Code:
Private Sub CommandButton2_Click()
On Error Resume Next


Do While zähler < 28                             
    Sheets("Konten GuV").Select
    Range("1:1").Select
    Selection.Find("SOLL").Select
    
    MsgBox "In dieser Spalte müssen Sie für die weißhinterlegten Felder die Werte eintragen!"
    zähler = zähler + 1
    Exit Do
     
    If zähler = 28 Then
        MsgBox "Maximaler Planungszeitraum erricht"
     Exit Do
    End If
Loop
End Sub
 
Zurück