Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

bereich sheets 2-11 auslesen und in .... VBA

Betrifft: bereich sheets 2-11 auslesen und in .... VBA von: Spenski
Geschrieben am: 01.08.2014 20:26:22

aloah ... so mal ein heikles thema , denk ich zumindest^^

die datei hat über 15 tabellenblätter

aus den tabellenblättern 2-11 soll jeweils ein bestimmter tabellenbereich kopiert werden und dann nach und nach in einer bestimmten anordnung im
tabellenblatt 13 "Ergebnis" eingefügt werden.
die anordnung hab ich versucht darzustellen https://www.herber.de/bbs/user/91835.xlsx

ich würds eventuell mit dem makrorecorder hinbekommen aber es gibt einen grossen haken.

jede woche ändern sich die namen von sheet 2-11 ( es handelt sich um kalenderwochen , und die alte fällt raus , eine neue rutscht nach)

kann man irgendwie sagen das der code sich auf das wirklich 2te -11te tabellenblatt bezieht , nicht auf die namen?

kann mir da jemand weiterhelfen??

makrorec:

Sub Makro4()
    Sheets("Tabelle2").Select
    Range("A1:G8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Tabelle3").Select
    Range("C6:I12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("B9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Tabelle4").Select
    Range("A1:G8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("I1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Tabelle5").Select
    Range("C6:I12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("I9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Tabelle6").Select
    Range("A1:G8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("P1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Tabelle7").Select
    Range("C6:I12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("P9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Tabelle8").Select
    Range("A1:G8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("W1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Tabelle9").Select
    Range("C6:I12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("W9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Tabelle10").Select
    Range("A1:G8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("AD1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Tabelle11").Select
    Range("C6:I12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ergebnis").Select
    Range("AD9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
    Sheets("Daten").Select
End Sub


gruss
christian

  

Betrifft: AW: bereich sheets 2-11 auslesen und in .... VBA von: Spenski
Geschrieben am: 01.08.2014 20:54:56

hat sich erledigt

sheets(2)....


  

Betrifft: AW: bereich sheets 2-11 auslesen und in .... VBA von: Adis
Geschrieben am: 02.08.2014 23:35:06

Hallo

mit Sheets 2-11 kann man Programmieren. Hierbei bitte beachten das der Index Sheets(2-11)
-NICHT IMMER- auch die "Tabelle2" bis 11 sein muss!! Vorsichtshalber austesten, sonst gibt
es eventuell böse Überraschungen.

Hier noch eine Variante für kürzere Makro Schreibweise. Das vorgestellte Makro entspricht
einer Makro Recorder Aufzeichnung. Die funktioniert zwar, ist aber sehr umstaendlich.

Viel einfacher ist das Kopieren über eine (GoSub) Routine, weil sich der Kopiervorgang ja
staendig im gleichen Ziel Blatt wiederholt. Nur die Ziel Adresse muss angegeben werden.
Das Wort (GoSub) musste ich in Klammer setzen, weil es den Server verwirrt. Er versteht
darunter (Sub) und meint es ware eine neues Makro. Die () bitte mit Replace entfernen.

'Die Namen der aktuellen Tabellen über Const eingeben
'das ist einfacher zu aendern als direkt im Makro Text
Const Blatt2 = "Tabelle2"
Const Blatt3 = "Tabelle3"
Const Blatt4 = "Tabelle4"
Const Blatt5 = "Tabelle5"
Const Blatt6 = "Tabelle6"
Const Blatt7 = "Tabelle7"
Const Blatt8 = "Tabelle8"
Const Blatt9 = "Tabelle9"
Const Blatt10 = "Tabelle10"
Const Blatt11 = "Tabelle11"

Sub Makro4()
     'auf Sheets + Range .Select kann man verzichten
     'hier eine Variante mit ZielAdr und (GoSub) Makro
     Sheets(Blatt2).Range("A1:G8").Copy
     ZielAdr = "B1":   (GoSub) kopie
         
     Sheets(Blatt3).Range("C6:I12").Copy
     ZielAdr = "B9":   (GoSub) kopie
         
     Sheets(Blatt4).Range("A1:G8").Copy
     ZielAdr = "I1":   (GoSub) kopie
         
     Sheets(Blatt5).Range("C6:I12").Copy
     ZielAdr = "I9":   (GoSub) kopie
     
     Sheets(Blatt6).Range("A1:G8").Copy
     ZielAdr = "P1":   (GoSub) kopie
         
     Sheets(Blatt7).Range("C6:I12").Copy
     ZielAdr = "P9":   (GoSub) kopie
         
     Sheets(Blatt8).Range("A1:G8").Copy
     ZielAdr = "W1":   (GoSub) kopie
         
     Sheets(Blatt9).Range("C6:I12").Copy
     ZielAdr = "W9":   (GoSub) kopie
         
     Sheets(Blatt10).Range("A1:G8").Copy
     ZielAdr = "AD1":   (GoSub) kopie
         
     Sheets(Blatt11).Range("C6:I12").Copy
     ZielAdr = "AD9":   (GoSub) kopie
         
     Sheets("Daten").Select
Exit Sub
 
kopie:   '(GoSub) als Unter Programm zum kopieren über Ziel Adresse
     Sheets("Ergebnis").Range(ZielAdr).PasteSpecial Paste:=xlPasteValues, _
        Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     Application.CutCopyMode = False
     Return
End Sub
Gruss Adis


  

Betrifft: AW: bereich sheets 2-11 auslesen und in .... VBA von: Spenski
Geschrieben am: 03.08.2014 10:16:46

hallo adis

leider wird mir bei diesem vorschlag alle zeilen die so aufgebaut sind

ZielAdr = "B9": (GoSub) kopie

rot angezeigt.


hab die 64bit version , liegts eventuell daran?

gruss
christian


 

Beiträge aus den Excel-Beispielen zum Thema "bereich sheets 2-11 auslesen und in .... VBA"