Microsoft Excel

Herbers Excel/VBA-Archiv

Arbeitsblatt Kopieren und D1 hochzählen | Herbers Excel-Forum


Betrifft: Arbeitsblatt Kopieren und D1 hochzählen von: Gerd
Geschrieben am: 21.07.2012 23:05:15

Hallo zusammen
Folgendes: Möchte Arbeitsblatt A1 50 mal Kopieren und Zelle D1 um 1 erhöhen (Start 1)

Sub copyA1()
  Dim lngIndex As Long
  
  On Error GoTo ErrExit
  Application.ScreenUpdating = False
  For lngIndex = 2 To 50
    Sheets("A1").Copy AFter:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = "A" & lngIndex
  Next
ErrExit:
Application.ScreenUpdating = True
End Sub
Dies habe ich schon aber ohne Zelle D1 erhöhen

Kann mir jemand dies aktualisieren
Vielen Dank
Gerd

  

Betrifft: ohne error,... von: Matze,Matthias
Geschrieben am: 22.07.2012 00:18:41

Hallo Gerd,
funktioniert dein Code,

Sub copyA1()
  Dim lngIndex As Long
    Application.ScreenUpdating = False
  For lngIndex = 2 To 10 'Test
    Sheets("A1").Copy AFter:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = "A" & lngIndex
  Next
Application.ScreenUpdating = True
End Sub
nur wenn schon Sheets vorhanden sind, wird der einen Fehler machen,da
er ja ab lngIndex 2 anfängt zu zählen und die Sheets schon da sind.
Aber Teste mal selbst,
Gruß Matze


  

Betrifft: AW: ohne error,... von: Gerd
Geschrieben am: 22.07.2012 09:08:05

@ Matze
Ja Dein Code funktioniert NUR was icih angesprochen habe das der Wert in D1 erhöht werden soll ist nicht berücksichtigt und darum ging es
Auch der andere Code funktioniert

Vielleich bekommen wir das mit dem Wert noch hin
Gruß
Gerd


  

Betrifft: muss es nicht 2 to 51 heißen ... von: Matthias L
Geschrieben am: 22.07.2012 09:41:38

Hallo

Willst Du generell bei 1 anfangen, dann benutze doch die Variable lngIndex-1.

' ...
     For lngIndex = 2 To 51
         Sheets("A1").Copy AFter:=Sheets(Sheets.Count)
         With Sheets(Sheets.Count)
         .Name = "A" & lngIndex
         .Range("D1") = lngIndex - 1
         End With
     Next
' ...

Oder willst Du den Wert aus Sheets("A").Range("D1") um eins erhöhen ?

Ich bin jetzt mal davon ausgegangen, des es nur das Worksheet("A1") in der Mappe gibt
Eine Fehlerroutine würde ich an Deiner Stelle aber später wieder einpflegen.

Gruß Matthias


  

Betrifft: AW: muss es nicht 2 to 51 heißen ... von: Gerd
Geschrieben am: 22.07.2012 10:03:30

Es gibt folgende Mappen
Adressen und A1
Die Mappe A1 soll um 20 (oder 50) erhöht werden (die Anzahl kann ich individuell erhöhen)

Also A1 A2 A3 A4 u.s.w
Der Wert in D1 soll ebenfalls um 1 erhöht werden

Also Mappe A1 in D1 =1;Mappe A2 in D1=2;Mappe A3 in D1=3

Soweit habe ich mich hoffentlich gut ausgedrückt ?

Danke für die Hilfe
Gerd


  

Betrifft: Der Code von Matthia L.,... von: Matze,Matthias
Geschrieben am: 22.07.2012 10:38:22

Hallo Gerd,
.....macht genau das was du willst, nimm nur die -1 weg dann passt das mit Zelle D1.

Option Explicit

Sub CopyA1()
Dim lngIndex As Long
    Application.ScreenUpdating = False
     For lngIndex = 2 To 10
         Sheets("A1").Copy AFter:=Sheets(Sheets.Count)
         With Sheets(Sheets.Count)
         .Name = "A" & lngIndex
         .Range("D1") = lngIndex
         End With
     Next
     lngIndex = 0
    Application.ScreenUpdating = True
End Sub
Gruß Matze


  

Betrifft: AW: Der Code von Matthia L.,... von: Gerd
Geschrieben am: 22.07.2012 10:45:39

Danke jetzt passt es

Gruß
Gerd


Beiträge aus den Excel-Beispielen zum Thema "Arbeitsblatt Kopieren und D1 hochzählen"