Clever-Excel-Forum

Normale Version: For-Next Schleife
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo liebes Forum !

Da die For-Next Schleifen ja nur auf numerischer Basis funktionieren, weiß jemand eine Möglichkeit z.B. mit Monatsnamen in Tabellenblättern (Jänner bis Dezember) eine gezielte Schleife zu setzen?

Der Grund ist, dass es vorkommen kann, dass in einer Jahresdatei ein Monats-Tabellenblatt z.B. März-2 zusätzlich eingefügt wird und dann funktioniert For i = 1 To 12 nicht mehr, außer wenn das hinzugefügte TB (13) ans Ende gestellt wird, was aber nicht gewünscht ist. Ich möchte aber nur 1-12 weiter bearbeiten.

Ich wäre für Eure werte Hilfe sehr dankbar.
Liebe Grüße aus Innsbruck
Helmut
Hallo Helmut,

z.B. so:

Code:
Sub aaa()
  Dim i As Long
  For i = 1 To 12
    Worksheets(Format(DateSerial(1, i, 1), "mmmm")).Activate
    Stop  'weiter mit Taste F5
  Next i
End Sub

Gruß Uwe
Hallo Helmut,
Du programmierst für diesen Fall eine Schleife über alle Blätter und Vergleichst die Namen mit der Vorgabe für jeden Monat.
Oder Du erstellst ein Array mir den Blattnamen und nimmst dann das Array als Bezug bzw. Quelle.
Im Prinzip
arrMon = Array("Jan","Feb",...)
For icnt=...
Sheets(arrMon(icnt).activate
Next
Oder Du machst es, wie Uwe geschrieben hat.
Hallo!
Wenn Dein zusätzliches Blatt mit einer Zahl endet, ginge es auch so:
Code:
Sub Machs()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
   If Not IsNumeric(Right(ws.Name, 1)) * 1 Then
      MsgBox ws.Name 'bzw. Dein Code
   End If
Next
End Sub

Gruß Ralf
Hallo Uwe, hallo Andrè, hallo Ralph !

Vielen Dank für Eure Hilfe.
Leider komme ich erst abends dazu einen Test zu machen.

Liebe Grüße
helmut
Hi Ralf,

(03.02.2015, 06:57)RPP63 schrieb: [ -> ]Wenn Dein zusätzliches Blatt mit einer Zahl endet, ginge es auch so:

falls ein Blatt gewissermaßen "kopiert" wird, ist das letzte Zeichen immer ein ")", also "März (2)", dann klappt das so vermutlich nicht.

Da er aber ja geschrieben hat "März-2" hast Du Recht.
Hallo,

Helmut wollte ja gerade die Kopien unberücksichtigt lassen. So verstehe ich seine Frage.

Gruß Uwe
Hi!
Ich auch, deshalb mein Vorschlag ... :30:
(hätte ja auch den Vorteil, dass man sich um die tatsächliche Anzahl der Sheets nicht zu kümmern braucht)

Gruß Ralf
Hi Ralf (RPP63),

Du hast ja so Not Not Recht. Smile

Gruß Uwe
Hallo Ihr Lieben!

Ich habe Ralphs Code verwendet, er funktioniert auch bestens, nur habe ich jetzt ein kleines Problem und komme trotz stundenlangen Versuchen nicht dahinter, wie das zu lösen wäre.
Das liegt leider an mir und meinem zu geringen Wissen.

Ich sollte nämlich z.B. einen in irgendeinem Monatstabellenblatt z.B. April in Zelle E5 eingegebenen Namen nur in die nachfolgenden Monate bis Dezember, aber ohne Berücksichtigung der zusätzlich eingefügten Tabelle übertragen.
Mit For/Next würde es ja funktionieren, wenn die zusätzlich eingefügte Tabelle nicht wäre.

Kann mir bitte jemand von Euch helfen, ich bin schon am Verzweifeln, dass ich nicht dahinter komme.
Vielen Dank
Helmut
Seiten: 1 2 3