Supportnet / Forum / Tabellenkalkulation
Datum in Mappe finden
Frage
Hallo Zusammen,
suche seit ein paar Tagen eine Lösung für folgendes Problem:
Ich habe eine Mappe mit "Kalenderblättern". Also für jeden Monat ein Kalenderblatt. Die Datems habe ich mit der Formel A1+1, B1+1 usw. erzeugt. Auf einem seperaten Tabellenblatt gebe ich das Suchdatum ein, welches ich nun in den Kalenderblättern finden möchte. Wird das eingegebene Datum gefunden, soll in der entsprechenden Spalte (Spalte des gefundenen Datums) die Zellen 4 bis 50 auf das Tabellenblatt "Gefunden" (Ab Zelle AP2) kopiert werden. In der Beispieldatei sind die Zellen 4 bis 50 leer. In der Ursprungsdatei stehen dort Mitarbeiterdaten. Aber der Inhalt ist ja für die Code-Erstellung eigentlich nicht relevant. Ganz deutlich wird es mit dieser Beispieldatei:
[url]http://www.netupload.de/detail.php?img=08e1fb749e85e25ae305295f008eb40f.xls[/url]
Bevor ich jetzt einen Rüffel wegen Crossposting bekommen: Hatte die Frage in spotlight gestellt, allerdings bis jetzt ohne Ergebnis, aber ich bräuchte eine evtl. Lösung so schnell wie möglich. Den Eintrag in spotlight werde ich natürlich dann schliessen.
EINE BITTE:
[b]Bitte nur Lösungen mit CODE[/b]
Bin für jeden Vorschlag dankbar
Gruss
Tom
Antwort 1 von coros
Hi Ton,
sorry, aber bei Deinem Link kommt keine Exceldatei, sondern eine Fehlermeldung, dass die Seite nicht angezeigt werden kann. Es gibt sicherlich eine Lösung. Da ich aber von Natur aus ein fauler Hund bin und keine Lust habe mir Deine Datei nach zu bauen, wäre es schön, wenn Du den Link zu Deiner Datei aktualisieren würdest, damit ich die Datei Downlaoden kann.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
sorry, aber bei Deinem Link kommt keine Exceldatei, sondern eine Fehlermeldung, dass die Seite nicht angezeigt werden kann. Es gibt sicherlich eine Lösung. Da ich aber von Natur aus ein fauler Hund bin und keine Lust habe mir Deine Datei nach zu bauen, wäre es schön, wenn Du den Link zu Deiner Datei aktualisieren würdest, damit ich die Datei Downlaoden kann.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Tom8
Hallo Oliver,
keine Ahnung, warum der Link nicht will. Neuer Versuch:
http://www.netupload.de/detail.php?img=9bf710ed9dae40e2df966a06a2b2...
Vielen Dank
Gruss
Tom
keine Ahnung, warum der Link nicht will. Neuer Versuch:
http://www.netupload.de/detail.php?img=9bf710ed9dae40e2df966a06a2b2...
Vielen Dank
Gruss
Tom
Antwort 3 von yps
hi,
Sub blabla()
datum = Sheets("Datum eingeben").Range("B5")
suche = Left(datum, 2)
blattname = Format(Month(datum), "mmmm") & " " & Right(Year(datum), 2)
Set gefunden = Sheets(blattname).Rows(1).Find(suche, LookIn:=xlValues)
MsgBox ("Gefunden in Blatt: " & blattname & " Adresse " & gefunden.Address)
End Sub
den rest schaffst du alleine ?
cu Micha
Sub blabla()
datum = Sheets("Datum eingeben").Range("B5")
suche = Left(datum, 2)
blattname = Format(Month(datum), "mmmm") & " " & Right(Year(datum), 2)
Set gefunden = Sheets(blattname).Rows(1).Find(suche, LookIn:=xlValues)
MsgBox ("Gefunden in Blatt: " & blattname & " Adresse " & gefunden.Address)
End Sub
den rest schaffst du alleine ?
cu Micha
Antwort 4 von Event
üps...
Antwort 5 von coros
Hallo Tom, hallo Micha,
so, ich habe mir die Datei mal angesehen. Mich, Dein Code funktioniert nicht. Hast Du Dir die Datei mal richtig angesehen. Hinter den Tageszahlen der einzelnen Tabellenblättern, steht ein Datum. Wobei ich nicht verstehe, warum. Somit funktioniert Dein Code nicht
Mit nachfolgendem Makro funktioniert es aber. Kopiere es in ein das VBA Projekt des Tabellenblattes, in dem das Datum eingegeben wird.
Wobei es ratsam wäre, dass Du den Monatszahlen in den Tabellenblättern eine andere Farbe als Weiß gibst, da die entsprechende Spalte kopiert wird, aber eingefügt werden nur die Inhalte. Das muss leider so sein, da Du die Tageszahlen mit einer Formel erzeugst. In Blatt Gefunden würde Dir dann aber nicht die Tageszahl angezeigt werden. Was ich noch nicht so ganz verstanden habe, soll die gefundenen Spalte immer in Spalte AP kopiert werden oder immer in die nächst freie Spalte neben AP.
Du solltest noch in der Symbolleiste unter "Extra => Optionen" in der Registerkarte "Berechnung" "1904-Datumswerte" aktivieren.
Test das mal. Wenn Du nicht klar kommst oder bei Fragen melde Dich noch mal.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
so, ich habe mir die Datei mal angesehen. Mich, Dein Code funktioniert nicht. Hast Du Dir die Datei mal richtig angesehen. Hinter den Tageszahlen der einzelnen Tabellenblättern, steht ein Datum. Wobei ich nicht verstehe, warum. Somit funktioniert Dein Code nicht
Mit nachfolgendem Makro funktioniert es aber. Kopiere es in ein das VBA Projekt des Tabellenblattes, in dem das Datum eingegeben wird.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wiederholungen As Integer, Tag, Monat, Jahr, Blattname As String
Application.ScreenUpdating = False
If Target.Cells.Address = "$B$5" Then
Tag = Format(Range("B5"), "dd")
Monat = Format(Range("B5"), "mmmm")
Jahr = Format(Range("B5"), "yy")
Blattname = Monat & " " & Jahr
For Wiederholungen = 1 To 31
If Format(Sheets(Blattname).Cells(1, Wiederholungen), "dd") = Tag Then
Sheets(Blattname).Columns(Wiederholungen).Copy
Sheets("Gefunden").Range("AP1").PasteSpecial Paste:=xlPasteValues
End If
Next
End If
End SubWobei es ratsam wäre, dass Du den Monatszahlen in den Tabellenblättern eine andere Farbe als Weiß gibst, da die entsprechende Spalte kopiert wird, aber eingefügt werden nur die Inhalte. Das muss leider so sein, da Du die Tageszahlen mit einer Formel erzeugst. In Blatt Gefunden würde Dir dann aber nicht die Tageszahl angezeigt werden. Was ich noch nicht so ganz verstanden habe, soll die gefundenen Spalte immer in Spalte AP kopiert werden oder immer in die nächst freie Spalte neben AP.
Du solltest noch in der Symbolleiste unter "Extra => Optionen" in der Registerkarte "Berechnung" "1904-Datumswerte" aktivieren.
Test das mal. Wenn Du nicht klar kommst oder bei Fragen melde Dich noch mal.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 6 von Tom8
Hallo Micha u. Oliver,
erstmal vielen Dank für eure Lösungen. Insbesondere an Oliver. Dein Code funzt hervorragend.
Deine Fragen:
Warum ein Datum:
Um beim kopieren zu sehen, wann ein neuer Monat beginnt u. falls ich später nicht nur den Tag (die ersten beiden Ziffern) sehen möchte, sondern durch Formatumstellung das komplette Datum.
Weiße Schriftfarbe:
Im Original ist die Schriftfarbe nicht weiß, hatte ich nur zur Verdeutlichung so gemacht.
Warum eigentlich auf 1904-Datumswerte umstellen ? Funktioniert doch auch so.
Das mit der Zielspalte AP ist übrigens korrekt so. Dient zum Auslesen der Mitarbeiterdaten unter dem gefundenem Datum.
Dazu hätte ich noch eine Frage:
In deinem Code wird die komplette Spalte kopiert. Ist es möglich nur die Zeilen 4 bis 50 der entsprechenden Spalte nach AP zu kopieren ?
Wäre schön, wenn du mir nochmal helfen könntest. Aber auch so, funktioniert dein Code ganz toll.
MfG
Tom
erstmal vielen Dank für eure Lösungen. Insbesondere an Oliver. Dein Code funzt hervorragend.
Deine Fragen:
Warum ein Datum:
Um beim kopieren zu sehen, wann ein neuer Monat beginnt u. falls ich später nicht nur den Tag (die ersten beiden Ziffern) sehen möchte, sondern durch Formatumstellung das komplette Datum.
Weiße Schriftfarbe:
Im Original ist die Schriftfarbe nicht weiß, hatte ich nur zur Verdeutlichung so gemacht.
Warum eigentlich auf 1904-Datumswerte umstellen ? Funktioniert doch auch so.
Das mit der Zielspalte AP ist übrigens korrekt so. Dient zum Auslesen der Mitarbeiterdaten unter dem gefundenem Datum.
Dazu hätte ich noch eine Frage:
In deinem Code wird die komplette Spalte kopiert. Ist es möglich nur die Zeilen 4 bis 50 der entsprechenden Spalte nach AP zu kopieren ?
Wäre schön, wenn du mir nochmal helfen könntest. Aber auch so, funktioniert dein Code ganz toll.
MfG
Tom
Antwort 7 von ypsilon
hi,
wenn ir mal jemand erklären kann warum mein code nicht funktionieren soll ??
hat das jemand ausprobiert ? der läuft !
ich habe nur keine fehlerroutine drin die anspringt wenn es das tabellenblatt nicht gibt
wetten dass ? *grins*
Sub blabla()
datum = Sheets("Datum eingeben").Range("B5")
suche = Left(datum, 2)
blattname = Format(DateSerial(Year(Date), Month(datum), 1), "mmmm") & " " & Right(Year(datum), 2)
Set gefunden = Sheets(blattname).Rows(1).Find(suche, LookIn:=xlValues)
If Not gefunden Is Nothing Then
With Sheets(blattname)
.Range(.Cells(4, gefunden.Column), .Cells(50, gefunden.Column)).Copy Destination:=Sheets("Gefunden").Range("AP1")
End With
Else
MsgBox ("Datum wurde nicht nicht gefunden")
End If
End Sub
cu Micha
wenn ir mal jemand erklären kann warum mein code nicht funktionieren soll ??
hat das jemand ausprobiert ? der läuft !
ich habe nur keine fehlerroutine drin die anspringt wenn es das tabellenblatt nicht gibt
wetten dass ? *grins*
Sub blabla()
datum = Sheets("Datum eingeben").Range("B5")
suche = Left(datum, 2)
blattname = Format(DateSerial(Year(Date), Month(datum), 1), "mmmm") & " " & Right(Year(datum), 2)
Set gefunden = Sheets(blattname).Rows(1).Find(suche, LookIn:=xlValues)
If Not gefunden Is Nothing Then
With Sheets(blattname)
.Range(.Cells(4, gefunden.Column), .Cells(50, gefunden.Column)).Copy Destination:=Sheets("Gefunden").Range("AP1")
End With
Else
MsgBox ("Datum wurde nicht nicht gefunden")
End If
End Sub
cu Micha
Antwort 8 von coros
Hallo an alle,
Ypsilon, ich habe den ersten Code ausprobiert und der hat nicht funktioniert. Der zweite von Dir funktioniert nun. Du kannst Dich schon drauf verlassen, wenn ich schreibe Dein Code funktioniert nicht. ;-)
Micha, anbei der Code, der Dir die Spalte von Zeile 4 bis Spalte 50 kopiert.
Ich hoffe, dass alles nun zu Deiner Zufriedenheit ist. Wenn nicht, dann melde Dich noch mal.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Ypsilon, ich habe den ersten Code ausprobiert und der hat nicht funktioniert. Der zweite von Dir funktioniert nun. Du kannst Dich schon drauf verlassen, wenn ich schreibe Dein Code funktioniert nicht. ;-)
Micha, anbei der Code, der Dir die Spalte von Zeile 4 bis Spalte 50 kopiert.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Wiederholungen As Integer, Tag, Monat, Jahr, Blattname As String
Application.ScreenUpdating = False
If Target.Cells.Address = "$B$5" Then
Tag = Format(Range("B5"), "dd")
Monat = Format(Range("B5"), "mmmm")
Jahr = Format(Range("B5"), "yy")
Blattname = Monat & " " & Jahr
For Wiederholungen = 1 To 31
If Format(Sheets(Blattname).Cells(1, Wiederholungen), "dd") = Tag Then
With Sheets(Blattname)
.Range(.Cells(4, Wiederholungen), .Cells(50, Wiederholungen)).Copy _
Sheets("Gefunden").Range("AP1")
End With
End If
Next
End If
End Sub
Ich hoffe, dass alles nun zu Deiner Zufriedenheit ist. Wenn nicht, dann melde Dich noch mal.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 9 von ypsilon
hi Oliver,
mit dem zweiten teil deines postings meintest du Tom ! und bei mir war das kopieren auch schon drin ;-)
jetzt aber mal ne eigene frage in dieser sache:
datum = Date
warum kommt hier was anderes raus ?
blattname = Format(Month(datum), "mmmm")
hier stimmts immer:
blattname = Format(DateSerial(Year(Datum), Month(datum), 1), "mmmm")
*grummel*
datum ist doch ein eindeutig ?
cu Micha
mit dem zweiten teil deines postings meintest du Tom ! und bei mir war das kopieren auch schon drin ;-)
jetzt aber mal ne eigene frage in dieser sache:
datum = Date
warum kommt hier was anderes raus ?
blattname = Format(Month(datum), "mmmm")
hier stimmts immer:
blattname = Format(DateSerial(Year(Datum), Month(datum), 1), "mmmm")
*grummel*
datum ist doch ein eindeutig ?
cu Micha
Antwort 10 von coros
Moin Micha,
das kann ich Dir leider auch nicht sagen, da ich mich damit noch nicht eingehend beschäftigt habe. Wobei ich fine, dass diese beiden Formatbefehle doppelt gemoppelt sind, denn der Befehl
Format(datum, "mmmm")
liefert den Monatsnamen der Variablen "datum" durch das Format "mmmm". Warum noch aufsplitten in Month?
Sorry, dass ich da keine richtige Antwort drauf habe.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
das kann ich Dir leider auch nicht sagen, da ich mich damit noch nicht eingehend beschäftigt habe. Wobei ich fine, dass diese beiden Formatbefehle doppelt gemoppelt sind, denn der Befehl
Format(datum, "mmmm")
liefert den Monatsnamen der Variablen "datum" durch das Format "mmmm". Warum noch aufsplitten in Month?
Sorry, dass ich da keine richtige Antwort drauf habe.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 11 von yps
hi Oliver,
das ist ´ne richtige antwort !
mit Format(Month(datum), "mmmm") formatiert man ja den MONAT (also eine zahl von 1 bis 12) als komplettdatum
*kopfklatsch*
thx
cu Micha
das ist ´ne richtige antwort !
mit Format(Month(datum), "mmmm") formatiert man ja den MONAT (also eine zahl von 1 bis 12) als komplettdatum
*kopfklatsch*
thx
cu Micha
Antwort 12 von Tom8
Guten Morgen ihr Beiden,
also meinen herzlichsten Dank an euch. Beide Lösungen funktionieren einwandfrei ! Vor allem bei Olivers Lösung freut mich, dass ich sogar das Format vom Tagesdatum ändern kann u. das Datum wird trotzdem gefunden !
Ihr habt mir sehr geholfen.
Danke nochmal
Gruss
Tom
also meinen herzlichsten Dank an euch. Beide Lösungen funktionieren einwandfrei ! Vor allem bei Olivers Lösung freut mich, dass ich sogar das Format vom Tagesdatum ändern kann u. das Datum wird trotzdem gefunden !
Ihr habt mir sehr geholfen.
Danke nochmal
Gruss
Tom

