Tabellenblatt mit Wert finden, Tabellenblattnummer ausgeben
#11
Ich werde den Code morgen einbauen und gebe dann eine Rückmeldung.
Vielen Dank erstmal.
Top
#12
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.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • tmessers
Top
#13
@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.
Top
#14
@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.
Top
#15
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.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • tmessers
Top
#16
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:
  • tmessers
Top
#17
Dann ersetze ich "bzw" durch "oder" Sleepy
Top
#18
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.





Top
#19
@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.
Top
#20
@Helmut

Dein Code funktioniert perfekt.

Vielen Dank!!!!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste