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

Activecell.offset

Activecell.offset
04.09.2007 10:47:00
Felix
Hallo,
ich habe zwei Probleme:
1.) ich habe 5 Zeilen (E63:E67). Ich möchte jeweils den Wert aus diesen Zeilen per Makro auslesen. Es kann jedoch sein, dass z.B. nur in der 1. und 3. Zeile oder aber auch in der 4., 5., und 2. Zeile was steht. Das ganze ist also recht flexibel. Wie lese ich nur die Zeilen ein, die auch Werte haben? Mit activecell.offset und while könnte es irgendwie gehen. Ich kriege es aber nicht hin.
2.) Ist es eigentlich möglich auch in VBA relativ zu refernzieren. Falls ich in meinem obigen Bespiel die Zeilen verschiede, muss ich ja alles per Hand wieder im Makro umändern. Gibt es da irgendwie eine Möglichkeit?
Vielen Dank für eure Hilfe
Gruß
Felix

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Activecell.offset
04.09.2007 12:05:00
Ralf
Hi Felix,
Zu 1.
z.Bsp. so:
For x = 63 to 97
if range("E" & x") "" then....
next x
Zu 2.
Indem Du Namen verwendest. Dann kannst Du die Zellen verschieben und das Makro nimmt trotzdem Bezug darauf. Im Bsp. verwendete Namen: Brutto, Netto, MwSt.
Verwendung im Makro:
Range("Brutto").FormulaR1C1 = "=Netto+Netto*(Mwst/100)"
Ciao, Ralf

AW: Activecell.offset
04.09.2007 12:14:44
Daniel
Hi
zu 1
wenn du per Makro nur die Zellen auslesen möchtest, in denen auch ein Wert steht, dann könnte das über diesen Code gehen:
For each Zelle in Range("E63:E67").specialcells(xlcelltypeconstants)
'... Dann dein Code
Next

geht aber nur, wenn die Zellen auch tatsächlich leer sind, und keine Formeln drinstehen, die einen Leerstring erzeugen.
zu 2
mir ist nicht bekannt, das es zwischen Excel und VBA eine Verbindung gibt, so daß Zellverschiebungen oder Löschungen im VBA-Code aktualisiert werden.
folgende Workarounds fallen mir aber dazu ein:
- du vergibst dem Zellbereich in Excel einen Namen (z.b. MEINBEREICH)
- du beziehst dich im VBA-Code dann auf diesen Namen, d.h. anstelle von Range("E63:E67") schreibst du dann Range("MEINBEREICH")
- du hast für diesen Bereich eine eindeutige Überschrift, die du per Find-Funktion suchst und den Zellbereich relativ zum Suchergebnis referenzierst
Beispiel:
- in Zelle E62 steht der Text "xxx"
- dann kannst du über folgenden Code den Zellbereich E63:E67 einer Objektvariable zuordnen:

dim MeinBereich as Range
set Meinbereich = cells.find(what:="xxx", lookat:=xlwhole).offset(1,0).resize(5,1)


Gruß, Daniel

Anzeige
AW: Activecell.offset
04.09.2007 12:17:00
Felix
Hallo ihr beiden,
vielen Dank für die schnellen Antworten. Das hilft enorm!!!
Gruß
Felix

39 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige