Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Select Sheets bei for each

Forumthread: Select Sheets bei for each

Select Sheets bei for each
11.01.2013 16:19:49
Jörg
Hallo,
ich möchte mit einer for each in allen Tabellen die ein Namen "Protokoll-Raum"
beinhalten ,einen Teil (Felder im gefunden Sheet) umkopieren.

Public Sub kopieren()
Dim wksraum As Worksheet
Dim sichtbar As Variant
'suchen um auf allen Protokollen die Formel umzukopieren
For Each wksraum In Worksheets
If InStr(1, wksraum.Name, sName("Protokoll-Raum")) Then
Sheets(wksraum).Select
Range(Cells(70, 2), Cells(80, 32)).Select
Selection.Copy
Range(Cells(16, 2), Cells(26, 32)).Select
wksraum.Paste
Range("a1").Select
End If
Next wksraum
End Sub

Aber ich bekomme es nicht hin, das ich das gefundene Sheet
mit select ansprechen kann.
Ich erhalten immer den Fehler 1004 und habe diesen auch schin gegooglet ,
aber ich komme nicht weiter.
Wie muss ich das gefundene Sheet deklarieren?
Gruß Jörg

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Select Sheets bei for each
11.01.2013 17:06:15
Sheldon
Hallo Jörg,
was soll denn sName() für eine Funktion sein? Versuch mal
If InStr(1, wksraum.Name, "Protokoll-Raum") Then
und Select funktioniert nicht, weil Objekt nicht mit Objekt angesprochen werden kann. Das geht viel einfacher, nämlich so:
wksraum.Select
Aber noch viel besser ist der Code ganz ohne Select, das brauchst du doch gar nicht!
Hier mal mein Codevorschlag:
Public Sub kopieren()
Dim wksraum As Worksheet
Dim sichtbar As Variant
'suchen um auf allen Protokollen die Formel umzukopieren
For Each wksraum In Worksheets
If InStr(1, wksraum.Name, "Protokoll-Raum") Then
wksraum.Range(Cells(70, 2), Cells(80, 32)).Copy Range(Cells(16, 2), Cells(26, 32))
End If
Next wksraum
End Sub
Teste mal, sollte auch gehen.
Gruß
Sheldon

Anzeige
AW: Select Sheets bei for each
11.01.2013 19:56:27
Jörg
Hi Sheldon,
die Funktion Sname dient zur Übersetzung der Sheet-Namen in 3 -Unterschiedliche
Sprachen.
aber leider bekomme ich auch mt deinen Code den Fehler 1004.
Gruß Jörg

in welcher Zeile tritt der Fehler denn auf?
11.01.2013 20:29:11
Sheldon
Hi Jörg,
kannst Du evtl. eine Beispieldatei hochladen? Bloß nix großes oder mit sonstigem Inhalt, nur um das mal nachvollziehen zu können!
Gruß
Sheldon

Anzeige
AW: geschuetzt?
12.01.2013 07:05:52
hary
Moin Joerg
Ist evtl. das Blatt geschuetzt ?
gruss hary

AW: geschuetzt?
12.01.2013 11:49:20
Jörg
Hi,
Nein das Sheet ist nicht geschützt, ich habe noch mal getesetet
und habe es nun sowiet, das mit dieser Zeile
wksraum.Range(Cells(70, 2), Cells(80, 32)).Copy Range(Cells(16, 2), Cells(26, 32))

mit nur die Zeilen und nicht der Range kopiert wird.
Jörg

Anzeige
AW: geschuetzt?
12.01.2013 11:53:04
Hajo_Zi
Hallo Jörg,
Deine Zeile ist falsch
With wksraum
.Range(.Cells(70, 2), .Cells(80, 32)).Copy Range(Cells(16, 2), Cells(26, 32)
End With

AW: in welcher Zeile tritt der Fehler denn auf?
12.01.2013 15:30:34
Jörg
Hallo ,
nac einigen Probieren , habe ich es hinbekommen.
Hier die Lösung:
  For Each osheet In Worksheets
If InStr(1, osheet.Name, sName("Sonderpotokoll")) Then
With osheet
Dim startCells As Range
.Range(.Cells(70, 1), .Cells(78, 17)).Copy .Range(.Cells(14, 1), .Cells(22, 17))
Set startCells = Sheets(osheet.Name).Range(.Cells(1, 1), .Cells(1, 1))
End With
Next osheet
Danke für Eure Hilfe....
Jörg
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18