2.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,
in meinem Tabellenblatt wird in Spalte A beginnend in "A 4" das Datum eingetragen und zwar pro Tag 96 mal bis zum Monatsende in "A 2979". Zum Beispiel: A4 bis A99 steht 01.05.09, A100 bis A195 steht 02.05.09 usw. In den Spalten B bis E stehen Messwerte. Ich möchte nun am besten über ein Makro, dass bei Eingabe eines Datums z.B. 02.05.09 der Bereich A100 bis E195 ( obiges beispiel ) an eine andere Stelle des Tabellenblattes z.B. J4 bis N99 kopiert wird. Wer kann mir dabei helfen? Ich habe keine Ahnung wie man das lösen kann.
Freundliche Grüße
biggx

7 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo biggx,

nachfolgender Code sollte das machen, was Du DIr vorstellst. Es wird ein EIngabefenster zur Datumseingabe geöffnet. Nach der Eingabe wird anhand einer Schleife das eingetragene Datum in Spalte A gesucht. Wenn gefunden, wird der Bereich des gefundenen Datums kopiert und ab Zelle J4 eingefügt.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Finden_und_kopieren()
Dim intRow As Integer
Dim varEingabe As Variant
'Datumseingabe
varEingabe = InputBox("Bitte Suchdatum eingeben")
'Wenn eingetragenes Datum nicht einem Datumswert entspricht, Prozedur _
beenden
If IsDate(varEingabe) = False Then Exit Sub
'Schleife zum Finden des eingetragenen Datums
For intRow = 4 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'Wenn eingetragenes Datum gleich dem Datum der durch die Schleife _
angesprochene Zelle dann...
If CDate(ActiveSheet.Cells(intRow, 1)) = CDate(varEingabe) Then
'...Bereich A:E des gefundenen Datumsbereichs kopieren und in _
J4 einfügen und...
With ActiveSheet
.Range(Cells(intRow, 1), Cells(intRow + 95, 5)).Copy _
.Range ("J4")
End With
'...Schleife verlassen
Exit For
End If
Next
End Sub

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo biggx,

für diesen Job wäre doch der Spezialfilter wie geschaffen.

Du legst den Filter über den Bereich A4:E2979, gibst als Kriterium das
besagte Datum ein und wählst als Filterziel die Zelle J4.


Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo noch mal,

auch mit einer Formellösung wäre die Auswertung recht einfach zu
bewerkstelligen.

Habe mal ein Beispiel angehängt, bei dem vor den Daten eine Hilfsspalte,
mit entsprechenden Formeln, eingefügt ist.

Die Auswertung erfolgt per SVERWEIS() im gelben Bereich.
Es brauchen keinerlei Formeln geändert werden, es macht sich lediglich
die Eingabe des gewünschten Datums in der rot markierten Zelle
erforderlich.

www.file-upload.net/download-1787194/Tageswerte.xls.html

Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo biggx,

dass Dir auch die Wahl so richtig schwer fällt, anbei noch die
angesprochene Spezialfilterlösung :-))

Du brauchst nur in die rote Zelle das Filterdatum eingeben und den Button
zu betätigen.
Die gefilterte Liste wird nach jedem Filteraufruf mit den richtigen Daten
überschrieben.
Die Basisliste kann nach Belieben verlängert oder verkürzt werden.
Der gelbe Kriterienbereich darf nicht verändert werden.

1787288/Spezialfilter_Auswertung.xls.html">www.file-upload.net/download-
1787288/Spezialfilter_Auswertung.xls.html


Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,
dein letzter download ist defekt.

Gruß
fedjo
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

danke für den Hinweis.

Nächster Versuch

l">rapidshare.com/files/259814406/Spezialfilter_Auswertung.xls.htm
l


Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Oliver und Rainer,
vielen Dank für eure Lösungen. Jetzt geht es mir schon viel besser. Die Formellösung funktionierte sofort. Das Makro markiert den gesuchten Bereich, aber kopiert ihn nicht, sondern bringt eine Fehlermeldung bei:
.Range(Cells(intRow, 1), Cells(intRow + 95, 5)).Copy _
.Range ("J4") !
Keine Ahnung warum. Trotzdem vielen Dank und ein schönes Wochenende.
Gruß Thomas
...