im FM finde ich nichts darüber, wie ich mehrere Bereiche in der Cells-Schreibweise in einem Range unterbringe. In der (selten nützlichen) AZ-Schreibweise sieht das ja so aus
Range("A1:C10;F1:M40")
Da ich aber eine find-Ergebnis mit einer Spalten zahl unterbringen muß, möchte ich die Cells-Notation verwenden, also etwa
im FM finde ich nichts darüber, wie ich mehrere Bereiche in
der Cells-Schreibweise in einem Range unterbringe. In der
(selten nützlichen) AZ-Schreibweise
Hier wage ich einen Einspruch - ich arbeite oft und viel mit ‚realen‘ Zellen-Adressen und Ranges und konnte mich bisher mit der .Cells()-Schreibweise nicht so recht anfreunden. Ich muss dann immer so lange suchen bis ich weiss, wo auf dem Tabellenblatt das denn gerade ist…
sieht das ja so aus
Range(„A1:C10;F1:M40“)
Da ich aber eine find-Ergebnis mit einer Spalten zahl
unterbringen muß, möchte ich die Cells-Notation verwenden,
Hier wage ich einen Einspruch - ich arbeite oft und viel mit
‚realen‘ Zellen-Adressen und Ranges und konnte mich bisher mit
der .Cells()-Schreibweise nicht so recht anfreunden. Ich muss
dann immer so lange suchen bis ich weiss, wo auf dem
Tabellenblatt das denn gerade ist…
Ja, das sehe ich eigentlich auch so, zumal die Cells-Notation nicht der mathematischen Konvention folgt, nämlich zuerst die x-, dann die y-Achse zu bezeichnen. Excel will ja Cells(y, x). Aber wenn man eben mit dem Find (siehe meinen vorigen Thread) eine Zahl zurückbekommt, haut das nicht so ganz hin. Und eine Funktion zu verwenden, die mir aus „AMQ“ das passende 1031 bastelt, kommt mir sehr komisch vor.
Weia, da habe ich nun soviel ausgetestet, aber darauf bin ich nicht gekommen. Ich habe zuletzt mit Union() herumoperiert. Das hat auchlange nicht geklappt, weil man dann bei der Übergabe an das mir vorher gänzlich unbekannte .Address denken muß.
Auf jeden Fall vielen vielen Dank für Deine nächtliche Hilfe und beste Grüße :o)
-Rob.
Hier wage ich einen Einspruch - ich arbeite oft und viel mit
‚realen‘ Zellen-Adressen und Ranges und konnte mich bisher mit
der .Cells()-Schreibweise nicht so recht anfreunden. Ich muss
dann immer so lange suchen bis ich weiss, wo auf dem
Tabellenblatt das denn gerade ist…
Ein schöner Kompromiß: Ich habe gerade festgestellt, und daran wirst Du meinen Erfahrungsgrad mit VBA einmal mehr ablesen können, daß folgendes funktioniert:
Cells(20, "F").machwas
Tja, wenn man das nicht weiß, weils übrigens auch nicht in meinem FM steht (hier: Said Baloui, „Excel 2002“, Markt+Technik Verlag, München, 2001), ist man doch sehr überrascht, aufs angenehme :o)
Hier wage ich einen Einspruch - ich arbeite oft und viel mit
‚realen‘ Zellen-Adressen und Ranges und konnte mich bisher mit
der .Cells()-Schreibweise nicht so recht anfreunden. Ich muss
dann immer so lange suchen bis ich weiss, wo auf dem
Tabellenblatt das denn gerade ist…
Ja, das sehe ich eigentlich auch so, zumal die Cells-Notation
nicht der mathematischen Konvention folgt, nämlich zuerst die
x-, dann die y-Achse zu bezeichnen. Excel will ja Cells(y, x).
Aber wenn man eben mit dem Find (siehe meinen vorigen Thread)
eine Zahl zurückbekommt, haut das nicht so ganz hin. Und eine
Funktion zu verwenden, die mir aus „AMQ“ das passende 1031
bastelt, kommt mir sehr komisch vor.
Jein…
.Find liefert das exakte Range-Objekt zurück, das sich direkt verwenden lässt - da mit .Row und .Column zu arbeiten macht die Sache dann nur wieder kompliziert…
Weia, da habe ich nun soviel ausgetestet, aber darauf bin ich
nicht gekommen. Ich habe zuletzt mit Union() herumoperiert.
Das hat auchlange nicht geklappt, weil man dann bei der
Übergabe an das mir vorher gänzlich unbekannte .Address denken
muß.
Auch das kann ich nicht so ganz nachvollziehen.
Union arbeitet nur und ausschliesslich mit Range-Objekten - hast Du also eines oder mehrere solche, so ist .Address egal und Du kannst direkt mit den Range-Objekten arbeiten.
Hast Du da vielleicht das eine oder andere Beispiel - den Beitrag mit der .Find-Problematik habe ich nicht so intensiv mitverfolgt.
Hast Du da vielleicht das eine oder andere Beispiel - den
Beitrag mit der .Find-Problematik habe ich nicht so intensiv
mitverfolgt.
Grüezi Thomas,
da geht es nicht um Range oder Cell.
In A1 und A7 stehen je ein Datum in TT.MM.JJJJ-Format
Ab B1 nach rechts stehen dann Formeln wie
=A1+1
diese Zellen sind formatiert als T
Jetzt soll mit .Find die Zelle gefunden werden wo A7 in Zeile 1 steht.
Rob hat XL 2003 *glaub*
Dort weiß ich nicht ob es schon die Anweisung
Aplication.FindFormat.NumberFormat=„m/d/yyy“
gibt, genausowenig ob es schon das benannte argument
SearchFormat
gibt.
Hier die Beispielmappe. http://www.file-upload.net/download-3580686/Datumssu…
Und hier der Code:
Option Explicit
Sub test()
Dim bla As Date
Dim rbFundstelleESpalte As Integer
Dim rbFundstelleA, rbFundstelleE As Range
With ThisWorkbook.Worksheets("Tabelle1")
bla = Range("Anfangsdatum") - 6
MsgBox ("Zu findende Zelle: " & .Cells(1, 8).Value & vbCrLf & "Suchwert: " & bla & vbCrLf & "Suchwert-Type: " & TypeName(bla))
Set rbFundstelleE = .Range(.Cells(1, 1), .Cells(1, 40)).Find(bla, \_
LookIn:=xlValues, SearchDirection:=xlNext)
rbFundstelleESpalte = rbFundstelleE.Column
End With
End Sub