Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
652to656
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
652to656
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Range("A2").Select funktioniert nicht

Range("A2").Select funktioniert nicht
16.08.2005 08:55:35
yogi
Guten morgen
in einer Excel-Datei ist das Makro (hier auf das wesentliche gekürzt)

Private Sub Workbook_Open()
Range("B2").Select
ActiveCell = "B2"
Range("C3") = "C3"
End Sub

Wird die Datei manuell geöffnet, steht anschliessend in B2 "B2" und in C3 "C3". Wird die Datei jedoch per Makro aus einer anderen Datei geöffnet, scheint die Anweisung Range("B2").Select nicht zu funktionieren da der Wert "B2" in Zelle A1 steht (=Aktive Zelle zur Zeit der Speicherung). Zelle(C3) enthält aber schön brav "C3".
Frage: Wieso wird Range("B2").Select nicht ausgeführt?
Gruss
yogi

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range("A2").Select funktioniert nicht
16.08.2005 09:18:35
gordon
Hallo yogi,
warum überhaupt select und nicht

Private Sub Workbook_Open()
Range("B2")="B2"
Range("C3") = "C3"
End Sub

Generell bezieht sich range, cell etc. ohne Angabe des zugehörigen Objektes immer auf das aus Excel-Sicht gerade aktive Worksheet. Bei mehr als einem geöffneten bzw. eigentlich besser immer die Objekte genau referenzieren:
z.B.
dim ws as worksheet
dim wb as workbook
dim r1 as range, r2 as range
set wb = workbook.open("Dateiname")
set ws = wb(1)
set r1 = ws.range(...
set r2 = activeSheet.range(...

Gruß
gordon
Anzeige
AW: Range("A2").Select funktioniert nicht
16.08.2005 09:31:53
yogi
Salü gordon
wichtig in meiner Anfrage war "auf das wesentliche gekürzt". Erweitert sieht das so aus (auch hier nur das wesentliche):
Range("xyz").select
do until Activecell=""
...
...
Activecell.Offset(1,0).select
loop
wie du siehst, geht ein einfaches Range("A2")="a2" nicht. Durch versuchen habe ich dann das Problem auf die Anweisung Range("...").Select reduzieren können.
Dein Vorschlag mit Set ... funktioniert leider auch nicht.
Gruss
yogi
AW: Range("A2").Select funktioniert nicht
16.08.2005 13:24:03
gordon
Hi yogi,
was geht da mit set nicht ? ;-)
kopier mal nachfolgenden Code in ein Modul und trage in Spalte A z.B. bis Zeile 5 Werte ein - Was steht nachher in der MessageBox ??

Sub setRange()
Dim ws As Worksheet
Dim r1 As Range, r2 As Range
Set ws = ActiveSheet
Set r1 = ws.Range("A1")
Do Until Len(r1.Value) = 0
Set r1 = r1.Offset(1, 0)
Loop
MsgBox "cell position: " & r1.Address
End Sub


Was willst Du mit der Schleife eigentlich bewirken ?
Letze gefüllte oder erste leere Zeile einer Spalte finden ?
Das geht einfacher und schneller...

Sub setLast()
Dim lc As Range
Set lc = ws.Range("A65536")
If Len(lc.Value) = 0 Then
Set lc = lc.End(xlUp).Offset(1, 0)
End If
MsgBox "cell position: " & lc.Address
End Sub

Gruß
gordon
Anzeige
AW: Range("A2").Select funktioniert nicht
16.08.2005 13:53:55
yogi
Salü gordon
Exeldatei mappe1.xls wird manuell geöffnet. Durch einen Commandbutton wird ein Makro gestartet, das den Benutzer diverse Dinge fragt. Auf Basis der Antworten wird nun eine von unzähligen verschiedenartigen Dateien (Excel, Word, Powerpoint, Text, usw.) per Makro geöffnet, z.B. mappe2.xls.
Besagter Code befindet sich in mappe2.xls. Wird mappe2.xls manuell geöfnet, läuft der Code wie er soll, d.h. auch der Befehl Range(xyz).Select wird sauber ausgeführt. Wird hingegen mappe2xls per Makro aus mappe1.xls geöffnet, funktioniert der Befehl Range(xyz).Select (mit oder ohne SET ...) nicht. (Auch dein Vorschlag geht leider nicht!)
Kompliziert, gell??
Gruss
yogi
Anzeige
AW: Range("A2").Select funktioniert nicht
16.08.2005 13:59:16
Eule
Hi Yogi
so gehts:
Application.Run("Mappe2.XLS!MeinMakro")
Gruss Eule
AW: Range("A2").Select funktioniert nicht
16.08.2005 14:20:04
gordon
Hi yogi,
geht: s. uploads
Mappe1
https://www.herber.de/bbs/user/25675.xls
Mappe2

Die Datei https://www.herber.de/bbs/user/25676.xls wurde aus Datenschutzgründen gelöscht

poste mal den code oder die Mappe, die den Aufruf durchführt - Wird das Workbook ordnungsgemäß geöffnet läuft die Open-Prozedur immer !
Gruß
gordon
AW: Range("A2").Select funktioniert nicht
16.08.2005 15:27:06
yogi
Tach ihr beiden
hier das Problem. Beide Dateien nach C:\Temp speichern
https://www.herber.de/bbs/user/25681.xls

Die Datei https://www.herber.de/bbs/user/25682.xls wurde aus Datenschutzgründen gelöscht


1. 25682.xls öffenen und sehen was passiert.
2. 25682.xls schliessen
3. 25681.xls öffnen, auf den Command button klicken und sehen was passiert
Gruss
yogi
Anzeige
AW: Range("A2").Select funktioniert nicht
16.08.2005 15:30:28
yogi
Nachtrag:
25681.xls als mappe1.xls speichern
25682.xls als mappe2.xls speichern
Gruss
yogi
AW: Range("A2").Select funktioniert nicht
16.08.2005 16:49:09
gordon
Hi Yogi,
es passiert genau das, was passieren soll.
Beim Öffnen von Mappe2 und beim Buttonklick das selbe !
Setz Dir mal in die Workbook_Open z.B. einen Breakpoint oder ein MsgBox "OPEN" , damit Du siehst, ob die Methode ausgeführt wird.
Sind dies die Originaldateien mit Deinem Problem oder neu erstellte, d.h. hast Du den Fehler (auch) mit genau diesen Dateien erhalten ?
Gruß
gordon
AW: Range("A2").Select funktioniert nicht
17.08.2005 16:10:01
yogi
Tach gordon
in dieser Mappe findest du zwei Bilder, einmal Mappe2 direkt geladen und einmal via commandbutton in mappe1.
https://www.herber.de/bbs/user/25749.xls

Gruss
yogi
Anzeige
AW: Range("A2").Select funktioniert nicht
17.08.2005 22:37:07
gordon
Hi yogi,
ich habe Dir das schon geglaubt, aber bei mir ist es definitiv nicht so.
Bist Du das Verhalten mal schrittweise im Debugger durchgegangen ?
Oder z.B.
MsgBox ActiveCell.Parent.Parent.FullName
im Code einfügen.
Strohhalm: Evtl. ein wirklicher Bug von Office97, ich nutze excel2000 bzw. 2003 und kann es nicht mit Deiner Version ausprobieren.
Habe auch nochmal eine Mappe2.xls
(https://www.herber.de/bbs/user/25766.xls) mit der Variante über set angehängt, damit muß es funktionieren, unabhängig, welche Zelle aktiv ist.
Frage ist auch noch offen, warum Du überhaupt über activeCell gehst / gehen musst.
Gruß
gordon
Anzeige
AW: Range("A2").Select funktioniert nicht
18.08.2005 08:10:17
yogi
Morgen gordon
zuhause habe ich Excel 2000, werde es mal heute Abend ausprobieren.
Warum über Activecell? Der (umfangreiche) Code arbeitet eine Matrix zeilenweise ab. Vor und nach der Matrix ist jeweils eine Leerzeile, weitere Zeilen mit Daten können davor oder danach liegen. Activecelle bezeichnet jeweils die erste Zelle einer Zeile.

Bis morgen
Gruss
yogi
AW: Range("A2").Select funktioniert nicht
18.08.2005 11:11:53
gordon
Hi yogi,
nachfolgend mal Code zum auffinden leerer Zeile / Zeilen, natürlich ohne activeCell ;-)
Gruß
gordon

Dim r As Range
Dim ws As Worksheet
Dim lc As Range
Dim c As Range

Set ws = ThisWorkbook.Sheets(1)
'set lc to last row
Set lc = ws.Range("A65536")
If Len(lc.Value) = 0 Then
' set lc after last cell with content
Set lc = lc.End(xlUp).Offset(1, 0)
End If
Set r = ws.Range("A1", lc)
For Each c In r
'find each empty row
If Len(c.Value) = 0 Then
'example to find two empty rows
'If Len(c.Value) = 0 And Len(c.Offset(1, 0).Value) = 0 Then
MsgBox c.Address
End If
Next 'c
Anzeige
AW: Range("A2").Select funktioniert nicht
19.08.2005 09:01:46
yogi
Moin gordon
habs daheim mit Excel 2000 probiert und, da staunt der Laie und der Fachmann wundert sich (obwohl das bei winzigweich ja die Regel ist), es geht.
Ich glaube, wir legen das Thema mal ad acta und hoffen auf einen Wechsel zu O2000 und neue Probleme
Gruss und Dank für die Hilfe
yogi
Glückwunsch ;-) owT
19.08.2005 14:20:23
gordon

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige