Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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
Inhaltsverzeichnis

Datum suchen in anderem Blatt

Datum suchen in anderem Blatt
Nico
Hallöchen,
da mein letzter Beitrag wohl zu schwer war, hier eine Teilfrage:
Ich habe im Blatt 1 ein Datum in Zeile F6 (z.B. 10_2010).
In Blatt 2 habe ich eine Datumsreihe
01_2010
02_2010
...
02_2011 in Spalte A, Zeile 8-19.
Nun möchte ich, das die Zelle in Blatt 2, Spalte A, die das gleich Datum erhält wie in Zeile F6, Blatt1, markiert wird.
Danke für die Mühe.
Nico

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datum suchen in anderem Blatt
26.10.2010 16:51:28
selli
hallo nico,
nimm die bedingte formatierung.
sie funktioniert allerdings nicht blattübergreifend, so dass eine zelle im 2.blatt eine verknüpfung zu blatt1 f6 haben sollte auf die sich die bedingte formatierung deiner datumszellen in blatt 2 bezieht.
gruß selli
AW: Datum suchen in anderem Blatt
26.10.2010 16:59:02
Nico
geht leider nicht, da ich dann noch weitermachen muss. Was ich genau brauche:
Wenn die Zeile in Blatt 2 erkannt ist, in der das gleiche Datum steht, dann soll in DIESER Zeile in
Spalte D, H, L, P, T die dort enthaltene Formel in Werte umgewandelt werden. Wollte ich dann ungefähr so machen:
Datum.Value = Datum.Value
Datum.Offset(0, 4) = Datum.Offset(0, 4)
Datum.Offset(0, 8) = Datum.Offset(0, 8)
Datum.Offset(0, 12) = Datum.Offset(0, 12)
Datum.Offset(0, 16) = Datum.Offset(0, 16)
und das für 9 Tabellenblätter. Mir fehlt irgendwie aber der Anfang oder die genaue Definition der Variable.
Wenn hier jemand eine Idee hat - gern :-)).
Anzeige
AW: evtl mit find ?
26.10.2010 17:27:31
hary
Hallo Nico
teste mal.

Sub n()
Dim zelle As Range
With Worksheets("Tabelle2").Range("A:A")
Set zelle = .Find(Sheets("Tabelle1").Range("F6").Value, LookIn:=xlValues, lookat:=xlWhole)
If Not zelle Is Nothing Then
zelle.Interior.ColorIndex = 3
End If
End With
End Sub

gruss hary
AW: evtl mit find ?
26.10.2010 17:54:54
Nico
super. Mit Harys code hat es geklappt. Ich habe jetzt nur "mache rot" durch ersetze Formel durch Wert geändert:
Dim zelle As Range
With Worksheets("Blatt2").Range("A8:A19")
Set zelle = .Find(Sheets("START").Range("F6").Value, LookIn:=xlValues, lookat:=xlWhole)
If Not zelle Is Nothing Then
zelle.Offset(0, 3) = zelle.Offset(0, 3)
zelle.Offset(0, 7) = zelle.Offset(0, 7)
zelle.Offset(0, 11) = zelle.Offset(0, 11)
zelle.Offset(0, 15) = zelle.Offset(0, 15)
zelle.Offset(0, 19) = zelle.Offset(0, 19)
End If
End With
Das i-Tüpfelchen wäre es jetzt noch, wenn ich alle 9 Blätter mit einem Code durchlaufen könnte, so ungefähr:
With Worksheets("Blatt2").Range("A8:A19") AND (&) Worksheets("Blatt4") AND .....
Ist das irgendwie machbar?
Anzeige
AW: evtl mit find ?
26.10.2010 18:08:09
hary
Hallo Nico
Teste mal in einer Kopie deiner Mappe.
Code ungetestet!

Sub test()
Dim Sh As Worksheet
Dim zelle As Range
Application.ScreenUpdating = False
For Each Sh In Worksheets
If Sh.Name  "Start" Then
With Sh.Range("A8:A19")
Set zelle = .Find(Sheets("START").Range("F6").Value, LookIn:=xlValues, lookat:= _
xlWhole)
If Not zelle Is Nothing Then
zelle.Offset(0, 3) = zelle.Offset(0, 3)
zelle.Offset(0, 7) = zelle.Offset(0, 7)
zelle.Offset(0, 11) = zelle.Offset(0, 11)
zelle.Offset(0, 15) = zelle.Offset(0, 15)
zelle.Offset(0, 19) = zelle.Offset(0, 19)
End If
End With
End If
Next
Set zelle = Nothing
Application.ScreenUpdating = True
End Sub

gruss hary
Anzeige
AW: evtl mit find ?
26.10.2010 18:11:00
Nico
Hey Hary,
ist leider nicht jedes Worksheet. Nur 9 von 16. Oder kann ich diese so anordnen, dass man sagen kann:
for worksheet (1) bis worksheet (9)?
AW: evtl mit find ?
26.10.2010 18:19:35
hary
Hallo
Mit sheet(1) spricht man die Stelle der Tabelle an. Wenn die nicht an erster Stelle(ganz links) sitzt geht es nicht.
Wie heissen die Tabellen, Du schreibst was von Blatt2 Blatt4, wie gehts weiter?
gruss hary
AW: evtl mit find ?
26.10.2010 18:28:04
Nico
Die Blätter heißen:
932V, 933V, 923V, 954V,
932P, 933P, 923P, 954P, 959P
Und wenn ich alle 9 als erste Blätter setze?
AW: evtl mit find ?
26.10.2010 18:32:36
hary
Hallo
wenn Du die aan den Anfang setzt, versuchs mal so. Ungeteste.

Sub n()
Dim i As Long
Dim zelle As Range
Application.ScreenUpdating = False
For i = 1 To 9 Step 2
With Sheets(i).Range("A8:A19")
Set zelle = .Find(Sheets("START").Range("F6").Value, LookIn:=xlValues, lookat:= _
xlWhole)
If Not zelle Is Nothing Then
zelle.Offset(0, 3) = zelle.Offset(0, 3)
zelle.Offset(0, 7) = zelle.Offset(0, 7)
zelle.Offset(0, 11) = zelle.Offset(0, 11)
zelle.Offset(0, 15) = zelle.Offset(0, 15)
zelle.Offset(0, 19) = zelle.Offset(0, 19)
End If
End With
Next
Set zelle = Nothing
Application.ScreenUpdating = True
End Sub

gruss hary
muss ertmal weg.
Anzeige
AW: evtl mit find ?
26.10.2010 18:48:52
Nico
Super, hat geklappt!! Habe sogar noch meine START-Tabelle und eine CHECK-Tab vorweg gestellt.
Danke für deine Mühe und dir noch einen schönen Abend
Nico
Dim i As Long
Dim zelle As Range
Application.ScreenUpdating = False
For i = 3 To 11 Step 1
With Sheets(i).Range("A8:A19")
Set zelle = .Find(Sheets("START").Range("F6").Value, LookIn:=xlValues, lookat:= _
xlWhole)
If Not zelle Is Nothing Then
zelle.Offset(0, 3) = zelle.Offset(0, 3)
zelle.Offset(0, 7) = zelle.Offset(0, 7)
zelle.Offset(0, 11) = zelle.Offset(0, 11)
zelle.Offset(0, 15) = zelle.Offset(0, 15)
zelle.Offset(0, 19) = zelle.Offset(0, 19)
End If
End With
Next
Set zelle = Nothing
Application.ScreenUpdating = True
Anzeige
AW: mit Array
26.10.2010 20:32:10
hary
Hallo Nico
so koennen die betr. Tabelle stehen wo sie wollen.

Sub n()
Dim blaetter, wks As Worksheet, n As Integer
Dim ZELLE As Range
Application.ScreenUpdating = False
blaetter = Array("932V", "933V", "923V", "954V", "932P", "933P", "923P", "954P", "959P")
For Each wks In Worksheets
For n = 0 To UBound(blaetter)
If blaetter(n) = wks.Name Then
With wks.Range("A8:A19")
Set ZELLE = .Find(Sheets("START").Range("F6").Value, LookIn:=xlValues, lookat:= _
xlWhole)
If Not ZELLE Is Nothing Then
ZELLE.Offset(0, 3) = ZELLE.Offset(0, 3)
ZELLE.Offset(0, 7) = ZELLE.Offset(0, 7)
ZELLE.Offset(0, 11) = ZELLE.Offset(0, 11)
ZELLE.Offset(0, 15) = ZELLE.Offset(0, 15)
ZELLE.Offset(0, 19) = ZELLE.Offset(0, 19)
End If
End With
End If
Next n
Next wks
Set Zelle = nothing
Application.ScreenUpdating = True
End Sub

gruss hary
Anzeige
@Selli anderem Blatt
26.10.2010 17:08:44
hary
Hallo Selli
geht auch Blattuebergreifend mit indirekt.
Bsp.Tabelle2 A1Formel ist =A1=INDIREKT("Tabelle1!F6")
gruss hary
AW: @Selli anderem Blatt
26.10.2010 17:15:48
selli
hallo hary, nico (wer auch immer),
dann lass doch bei veränderung der zelle f6 in blatt 1 eine schleife von zelle a8 bis a19 in blatt2 laufen welche die werte vergleicht.
bei übereinstimmung überschreibst du die anschliessenden zellen in der jeweiligenspalte ganz einfach mit ihrem eigenen wert. bsp. cells(i,4).value=cells(i,4).value.
dann ist aber die formel weg.
ein beispiel kann ich dir jetzt leider nicht basteln, weil ich keine zeit mehr habe. morgen evtl.
gruß selli
Anzeige
@ nic AW: @Selli anderem Blatt
26.10.2010 17:17:11
selli
hallo hary,
hab da wohl die personen durcheinander gebracht.
danke für den tipp.
gruß selli

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige