Registriert seit: 05.11.2016
Version(en): 2010
Ich werde den Code morgen einbauen und gebe dann eine Rückmeldung.
Vielen Dank erstmal.
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
warum braucht man für jeden Monat ein eigenes Blatt???? Excel hat soviel Zellen, dass man da etliche Jahre unterbringen könnte. Macht die Auswertung deutlich einfacher. Excel-Tabellen sind nicht an DIN A4 Blätter gebunden, das kann man beim Drucken formatieren.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 05.11.2016
Version(en): 2010
@atilla
@Helmut
Danke für Eure HIlfe,
das war genau der richtige Tipp.
Jetzt ist aber ein weiteres Problem aufgetaucht.
Ich suche ja nach einem Datumsbereich der durch Datum1 und Datum2 begrenzt ist .
Die Tabellenblätter in denen gesucht wird, enthalten aber ggfs. das datum1 und das datum2 nicht, weil an dem jeweiligen Tag
kein Eintrag stattgefunden hat.
Ich benötige als noch eine Schleife die das datum1 erhöht bzw. das datum2 verringert bis datum1 bzw. datum2 gefunden werden.
Registriert seit: 05.11.2016
Version(en): 2010
@Boskobiati
Ich würde das so mache wie sie vorschlagen, habe aber auf die Datenbasis leider keinen Einfluss.
Das ist vor allem dann problematisch, wenn ich monatsübergreifend suche muss.
An der Lösung arbeite ich auch noch.
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
dann würde ich die Daten einfach in eine Tabelle schaufeln, das geht mit VBA relativ einfach. Wie Du selbst feststellen kannst, fangen die Probleme spätestens dann an, wenn Monatsübergreifend gesucht wird!
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 21.06.2016
Version(en): 2021
Hallo tmessers,
natürlich hat der Opa recht, gleichartige Daten gehören in eine und nur eine Tabelle.
Zu deiner Frage:
Es gibt in den Programmiersprachen keine Konstrukte die ein "bzw" abbilden können. Hier solltest du die Vorgabe genauer schreiben.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:1 Nutzer sagt Danke an Ego für diesen Beitrag 28
• tmessers
Registriert seit: 05.11.2016
Version(en): 2010
Dann ersetze ich "bzw" durch "oder"
Registriert seit: 21.06.2016
Version(en): 2021
Hallo tmessers,
aus meiner Sicht macht auch ein oder hier keinen Sinn, dann könnte ich ja aussuchen welche der beiden Alternativen ich Programmiere.
Ich hab mal Etzels code so angepasst (ungetestet), dass ich das Anfangsdatum erhöhe und das Enddatum reduziere wenn ich dieses nicht gefunden habe.
Ich habe um die "FOR I .."-Schleife eine While-Schleife gesetzt. Nach jeder "FOR I .."-Schleife wird das Datum, für den ich keinen Eintrag gefunden habe angepasst.
Da ich nicht weis, ob du die Variablen Datum1 und Datum2 noch im weiteren code benötigst, habe ich neben den drei logischen Variablen noch Datum3 und Datum4 eingefügt, die ich in der While-Schleife anpasse.
Code:
bolSuchen = True
bolAnfGefunden = False
bolEndGefunden = False
Datum3 = Datum1
Datum4 = Datum2
While bolSuchen
For i = 2 To Sheets.Count
irow3 = 0
irow4 = 0
Sheets(i).Select
For Each zelle3 In Range(Cells(8, 1), Cells(Rows.Count, 1).End(xlUp))
If Cells(zelle3.Row, 1) = Datum3 Then
irow3 = zelle3.Row
bolAnfGefunden = True
End If
Next zelle3
For Each zelle4 In Range(Cells(8, 9), Cells(Rows.Count, 1).End(xlUp))
If Cells(zelle4.Row, 1) = Datum4 Then
irow4 = zelle4.Row
bolEndGefunden = True
End If
Next zelle4
If irow3 * irow4 > 0 Then
bolSuchen = False
Range(Cells(irow3, 1), Cells(irow4, 9)).Copy
End If
Next i
If bolSuchen Then
If bolAnfGefunden And bolEndGefunden Then
Datum3 = Datum3 + 1
bolAnfGefunden = False
bolEndGefunden = False
Else
If Not bolAnfGefunden Then
Datum3 = Datum3 + 1
End If
If Not bolEndGefunden Then
Datum4 = Datum4 - 1
End If
End If
If Datum3 > Datum4 Then
bolSuchen = False
End If
End If
Wend
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 05.11.2016
Version(en): 2010
@Helmut
du hast recht. Es kann ja passieren, dass Datum1 und Datum2 nicht gefunden werden.
Ich werde Deinen Code morgen ausprobieren.
Danke schonmal für Deine Unterstützung.
Registriert seit: 05.11.2016
Version(en): 2010
@Helmut
Dein Code funktioniert perfekt.
Vielen Dank!!!!