Microsoft Excel

Herbers Excel/VBA-Archiv

For Each Zelle In Range

Betrifft: For Each Zelle In Range von: Raphael
Geschrieben am: 27.10.2014 11:29:37

Hallo Zusammen,
ich habe da mal wieder ein Problem! und ich hoffe ihr habt eine Lösung ;-)

im Bereich B1:B25 stehen die Excel Sheets die geöffnet werden sollen, leider steht in diesem Bereich auch das Sheet (X) aus dem das Makro gestartet wird. Da die Stellung des Sheets X leider nicht immer gleich ist, muss ich jedes mal das Makro anpassen. Gibt es eine Möglichkeit das untenstehende Makro so umzuschreiben das alle Sheets aus dem Bereich B1:B25 geöffnet werden, nur halt nicht das sheet was schon offen ist. da kommt sonst immer ne Fehlermeldung.

For Each Zelle In Range("B1:B19,B21:B25")

Application.Calculation = xlCalculationManual

Workbooks.Open Zelle.Value

Besten dank

raphael

  

Betrifft: Frag den Namen ab von ThisWorkbook ... von: Matthias L
Geschrieben am: 27.10.2014 11:35:34

Hallo

Probiers mal so: ungetestet

If ThisWorkbook.Name <> Zelle.Value Then
 Workbooks.Open Zelle.Value
End If
Gruß Matthias


  

Betrifft: AW: Frag den Namen ab von ThisWorkbook ... von: Raphael
Geschrieben am: 27.10.2014 12:40:01

Hallo Matthias,

das scheint so leider auch nicht zu funktionieren, ich bekomme wieder die Meldung das das Sheet schon offen ist und dann wird das Makro beendet.


raphael


  

Betrifft: AW: Frag den Namen ab von ThisWorkbook ... von: Rudi Maintaire
Geschrieben am: 27.10.2014 12:57:29

Hallo,
was steht denn im Bereich?
Evtl. If zelle <> thisworkbook.fullname then ...

Gruß
Rudi


  

Betrifft: AW: Frag den Namen ab von ThisWorkbook ... von: Raphael
Geschrieben am: 27.10.2014 13:55:55

Hallo Rudi,

Im range B1:B... stehen die verschiedenen Namen der Excel Files die nacheinander geöffnet werden sollen.

For Each Zelle In Range("B1:B4")

Application.Calculation = xlCalculationManual

Workbooks.Open Zelle.Value

Besten dank

raphael


  

Betrifft: Groß-/Kleinschreibung? von: Jürgen V.
Geschrieben am: 27.10.2014 17:51:08

Hallo Raphael,

bei Textvergleichen spielt die Groß- und Kleinschreibung eine Rolle, also wandelt man sicherheitshalber beim Vergleich alles in z. B. Großbuchstaben um:

If UCase$(ThisWorkbook.Name) <> UCase$(Zelle.Value) Then
   Workbooks.Open Zelle.Value
  End If
Vielleicht war es das schon...

Gruß, Jürgen