Bereich mit VBA markieren

Hallo Experten,
schon wieder habe ich ein Problemchen.
Dies ist so ähnlich wie letztes Mal
muß in einer Excel Tabelle einen genau festgelegten Bereich markieren (mittels VBA)
Von dem Bereich steht folgendes fest :
Bereich geht von B16 bis … genau hier geht das los

Das Makro müßte folgendes können:

  • suche erste freie Zelle in Spalte A (das bekomme ich mit VBA hin)
  • merke dir die Zelle und springe eine nach rechts und eine nach oben
    (das bekomme ich mit VBA auch hin)
  • nun markiere den Bereich von B? (dies ändert sich ja durch das Makro) bis B16

und den Rest kann ich dann auch wieder selber

Vielen Dank erstmal im Voraus
Gruß Roland

Hallo Roland,

um dir nicht ganz den Spass zu verderben, hier nur ein Tip wie das mit dem Selektieren klappt:

Range(Cells(StartZeile,StartSpalte),Cells(EndeZeile,EndeSpalte)).Select

Zu beachten ist hier nur, das du die SpaltenNUMMER, also nicht der Buchstabe sondern 1 (=A), 2(=B) usw. eingeben musst.

Gruß
Daniel

Hallo Daniel,

ich denke mal Du hast mich falsch verstanden,

wenn ich den Bereich selber festlegen kann ist das schon klar.

Aber die „Endzelle“ ändert sich ja durch das Makro.
Also müßte der Befehl ungefähr so sein:
Range(Cells(dort wo ich jetzt stehe),Cells(2, 16)).Select
(veränderlich durch Makro), (feststehend B16)

Gruß Roland

Hallo Roland,

am Prinzip ändert sich da auch gar nichts.
Wenn du die Position (also Zeile UND Spalte, ich dachte nur eins von beiden) verwenden willst, gehts sogar noch einfacher mit ActiveCell.
Der Befehl würde also lauten:
Range(ActiveCell,Cells(2,16)).Select

Die Parameter für Zeile und Spalte von Cells können natürlich auch Variablen oder Rechnerische Ausdrücke sein. Also würde z.B.
Range(ActiveCell,Cells(ActiveCell.Row+3,ActiveCell.Column+3)).Select
von der aktiven Zelle 3 nach rechts und 3 nach unten markieren.

Wenn dir das auch noch nicht weiterhilft, kannst du mir ja die Tabelle mit dem Code, soweit er bereits existiert, schicken und ich kuck’s mir mal am Beispiel an.

Grüße
Daniel

Danke
Hallo Daniel,

habe alles mögliche selber durchprobiert.
Aber ich muß immer irgndein Fehler gemacht haben.
Das war’s.
Danke für die schnelle Hilfe.
Funktioniert super !!!

Gruß Roland
PS: vielleicht kannst Du mir in einer anderen Sache weiterhelfen.
Ich möchte ein VBA schreiben, in dem ich festlege, daß eine bestimmte Datei jeden Tag 16:00 sich selbst noch mal speichert (kann ich) und dann sich selber schließt. Mit dem selber schließen bekomme ich vielleicht auch noch hin, aber wie kann ich die Zeit festlegen, wann das Makro ausgeführt werden soll???
Wenn Du keinen Rat weist, dann bitte kurze Mitteilung, dann poste ich noch mal komplett neu.
Hintergrund der ganzen Geschichte ist:
16:00 gehen die Tagschichter nach Hause, wenn die Datei dann noch offen ist, können wir sie über Nacht/Wochenende nicht nutzen (weißt schon, Netzwerk)

Ich möchte ein VBA schreiben, in dem ich festlege, daß eine
bestimmte Datei jeden Tag 16:00 sich selbst noch mal speichert
(kann ich) und dann sich selber schließt. Mit dem selber
schließen bekomme ich vielleicht auch noch hin, aber wie kann
ich die Zeit festlegen, wann das Makro ausgeführt werden
soll???

Hi Daniel,
bin nicht Roland aber spielt ja wohl erstmal keine Rolle.
Ohne Wissen ob das geht würde ich es so probieren.
Per Taskmanager oder ähnlichem thlich um 16:00 eine Excel_datei starten die beim Starten ein Makro startet, daß schaut ob die zu sichernede Datei noch offen ist (evtl. mit Datei öffnen und Fehlercode auswerten feststellen) dann diese sichernd schließt und sich dann selbst beendet.
Gruß
Reinhard

Hallo Roland,

also aus dem Bauch heraus würde ich auch auf Reinhards Weg über den Zeitplandienst tippen. Wenn der keine Excel-Tabelle kann und du auch keine Exe (z.B. mit Visual Basic und von dort aus Excel fernsteuern) erstellen kannst, bleibt vermutlich nur ein ganz furchtbarer weg:
eine Endlosschleife mit DoEvents und ab und zu mal ein Zeitvergleich. Aber es kann passieren, dass du dann u.U. mit anderen Excel-Makros oder Excel an sich nicht mehr viel anfangen kannst. Genau weiss ich das nicht, da ich sowas auch noch nicht probiert habe.

Es ist vermutlich das Beste, wenn du’s nochmal über einen eigenen Thread für dieses Problem versuchst, vielleicht kann dir jemand besser helfen.

Gruß
Daniel