Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
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
Inhaltsverzeichnis

Select Sheets bei for each

Select Sheets bei for each
11.01.2013 15: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

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

Betreff
Datum
Anwender
Anzeige
AW: Select Sheets bei for each
11.01.2013 16: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 18: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 19: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

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

AW: geschuetzt?
12.01.2013 10: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 10: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 14: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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige