Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro mit Schleife optimieren

Makro mit Schleife optimieren
01.03.2007 17:00:39
Wolfgang
Hallo,
ich habe mir dieses Makro geschrieben, um eine Abfrage zu starten. Mit folgender Bedingung .
Wenn in Tabelle2 (A1) das Jahr 2007 steht, dann in Zelle (EP29) = (BG42) eintragen. Bei dem Jahr 2008 (EQ29) = (BG42) usw. bis zum Jahr 2020.
Wie schreibt daraus eine For Next - Schleife?
If Tabelle2.Cells(1, 1) = "2007" Then
[EP2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2008" Then
[EQ2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2009" Then
[ER2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2010" Then
[ES2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2011" Then
[ET2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2012" Then
[EU2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2013" Then
[EV2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2014" Then
[EW2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2015" Then
[EX2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2016" Then
[EY2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2017" Then
[EZ2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2018" Then
[FA2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2019" Then
[FB2] = [BG42]
Else
If Tabelle2.Cells(1, 1) = "2020" Then
[FC2] = [BG42]
Else
'[BI42] = [BG42]
'[I43] = [BI42]
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Vielen Dank schon mal im vorraus und Gruß
Wolfgang

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Select Case
01.03.2007 17:35:00
worti
Hallo Wolfgang,
so wirds übersichtlich:

Select Case Tabelle2.Cells(1, 1)
Case "2007"
[EQ2] = [BG42]
Case "2008"
[ER2] = [BG42]
Case "2009"
[ES2] = [BG42]
Case "2010"
[ET2] = [BG42]
'usw...
End Select

Gruß Klaus
AW: Makro mit Schleife optimieren
01.03.2007 17:45:46
Peter
Hallo Wolfgang,
versuch es so:

Sub Wolfgang()
Dim iSpalte  As Integer
Dim Jahr     As Integer
iSpalte = 146 ' das entspricht Spalte EP
With Worksheets("Tabelle2")
For Jahr = 2007 To 2020
If .Cells(1, 1) = Jahr Then
.Cells(2, iSpalte) = [BG42]
Exit For
Else
iSpalte = iSpalte + 1
End If
Next Jahr
End With
End Sub

Gruß Peter
Anzeige
Nicht ganz
01.03.2007 17:50:01
worti
Hallo Peter,
nicht ganz, bei 2017 ändert sich die Spalte, aber sonst schön.
AW: @worti
01.03.2007 21:06:08
Peter
Hej worti,
nach Spalte EZ kommt bei mir immer noch FA - wo ist dein Problem!?
Gruß Peter
Sorry, war von Blindheit geschlagen
02.03.2007 09:14:39
Blindheit
AW: Makro mit Schleife optimieren
01.03.2007 17:52:09
Wolfgang
Hallo,
danke für die Antworten, ich werde es gleich mal ausprobieren.
Danke an Klaus
und auch an Peter
ganz einfach ^^
01.03.2007 17:50:10
Franc
liniarer Anstieg = 0 Problem (Pro Jahr eine Spalte weiter nach rechts)
Jahr 2007 ist Spalte 146
Jahr 2008 ist Spalte 147
etc.
2007 (Jahr) - 146 (Startspalte) = 1861
also alle Folgejahre -1861
Spalte = Jahr (Zelle A1) - 1861 = Spalte
2. Zeile trägt dann in die jeweilige Zelle den Wert von BG42 ein
Spalte = Tabelle2.Cells(1, 1) - 1861
Cells(29, Spalte) = [BG42]
Anzeige
falsche Zeile ^^
01.03.2007 17:52:00
Franc
Spalte = Tabelle2.Cells(1, 1) - 1861
Cells(2, Spalte) = [BG42]
Hinweis
01.03.2007 18:03:00
Franc
Omg, 3 Einträge die auch in eine Antwort gepasst hätten ^^
Eine EditOption wäre gut.
Wenn man nur Cells(29, Spalte) = [BG42] schreibt, muss man sich auch auf dem richtigen Blatt befinden. Wenn BG42 und die Zielzelle auch auf Blatte 2 liegen, dann würde ich es auch komplett auf Blatt 2 festlegen. (oder auch gleich aus entsprechende Workbook)
Also
With Tabelle2
Spalte = .Cells(1, 1) - 1861
.Cells(2, Spalte) = .[BG42]
End With

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige