Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
664to668
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
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten filtern

Daten filtern
14.09.2005 21:27:39
Torsten
Hallo Leute,
ich habe folgendes Problem:
Ich habe eine Liste mit Namen und Monaten.
In den einzelnen Monaten sind keine Einträge oder einträge mit einem "*" vorhanden.
Diese möchte ich gern in einem ganz jahres Überblick mit den dazugehörigen Namen haben.
kann mir jemand bei der Lösung behilflich sein?
Eine Beispieltabelle lade ich mit hoch.
https://www.herber.de/bbs/user/26041.xls

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten filtern
14.09.2005 21:33:29
Ramses
Hallo
Meine Kristallkugel ist leider noch im "1000 Tabellen Preview SErvice".
Leider kann ich weder mit deiner Beschreibung noch mit der Beispieltabelle irgendwie erkenne, was du erreichen willst.
Gruss Rainer
AW: Daten filtern
14.09.2005 22:01:42
Torsten
Hallo Rainer,
Danke, das du dich meiner an nimmst.
Ich hab noch mal eine andere Tabelle hochgeladen.
Sie zeigt deutlicher, was ich erreichen möchte.
Im Blatt " Überblick "sollen alle Personen aotumatisch aufgelistet werden, die in der Tabelle "Daten" keinen eintrag haben, oder ein z.B. "*" .
Vieleicht kann man auch einen Bezug auf 1 Zelle nehmen, wo ich denn anstatt des " *" etwas anderes eintragen kann.
https://www.herber.de/bbs/user/26578.xls
mfg Torsten
Anzeige
AW: Daten filtern
14.09.2005 23:02:34
Franz
Hallo Torsten,
mit einer Formel kann man das von Dir gewünschte (gesuchte Namen immmer direkt unter dem Monat beginnend eintragen) nicht erreichen. Es ist nur möglich, dass in der Übersicht an den Stellen, an denen in der Tabelle "Daten" ein "*" oder "nichts" steht in der Tabelle Übersicht der Name angezeigt wird.
Dazu in Zelle A5 der Tabelle "Übersicht folgende Formel eintragen:

=WENN(ODER(Daten!A5="*";ISTLEER(Daten!A5));Daten!$N5&" "&Daten!$M5;"")

Diese Formel dann nach rechts und nach unten kopieren.
Evtl. kommst Du dmit ja weiter.
Gruß
Franz
Anzeige
AW: Danke Franz
14.09.2005 23:45:22
Torsten
Danke für deine Bemühungen.
mfg Torsten
AW: Daten filtern
14.09.2005 23:20:41
Ramses
Hallo
Kopiere den Code in Modul, und lass ihn laufen
Option Explicit
Option Base 1
Sub Create_Result()
    Dim i As Integer, n As Integer
    Dim tarWks As Worksheet, qWks As Worksheet
    Dim tStartRow As Range, qStartRow As Range
    Dim anzMA As Integer
    Dim monArr()
    monArr = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
    'Anzahl Mitarbeiter die gelistet sind
    anzMA = 5
    '**********************************************
    'Ab hier keine Änderungen mehr vornehmen
    '**********************************************
    'Fehlerbehandlung ausschalten für Zell-Auswahl
    'On Error Resume Next
    'Hier beginnend die Daten
    Set qStartRow = Application.InputBox("In welcher Zelle beginnen die Daten (Monat Jan !!)", "Beginn Datenzelle festlegen", "A4", Type:=8)
    If qStartRow Is Nothing Then Exit Sub
    'Hier kommen die Daten her
    Set qWks = qStartRow.Parent
    'Hier kommen die Daten hin
    Set tStartRow = Application.InputBox("In welcher Zelle soll die Übersicht beginnen?", "Beginn Übersichtszelle festlegen", "A11", Type:=8)
    If tStartRow Is Nothing Then Exit Sub
    'Fehlerbehandlung wieder einschalten
    Err.Clear
    On Error GoTo 0
    Set tarWks = tStartRow.Parent
    With tarWks
        For i = 1 To 12
            .Range(tStartRow.Address).Offset(0, i - 1) = monArr(i)
        Next i
    End With
    'Daten aufbereiten
    With qWks
        For n = 1 To anzMA
            For i = 1 To 12
                If IsEmpty(.Range(qStartRow.Address).Offset(n, i - 1)) Or .Range(qStartRow.Address).Offset(n, i - 1) = "*" Then
                    tarWks.Range(tStartRow.Address).Offset(n, i - 1) = .Cells(n + qStartRow.Row, 13) & " " & .Cells(n + qStartRow.Row, 14)
                End If
            Next i
        Next n
    End With
    MsgBox "Auswertung fertig"
End Sub


Gruss Rainer
Anzeige
... oder so.
14.09.2005 23:31:27
Ramses
Hallo
wenn unterhalb der NAMEN KEINE weiteren Daten mehr stehen, dann kannst du diese Variante verwenden
Option Explicit
Option Base 1
Sub Create_Result()
    Dim i As Integer, n As Integer
    Dim tarWks As Worksheet, qWks As Worksheet
    Dim tStartRow As Range, qStartRow As Range
    Dim anzMA As Integer
    Dim monArr()
    monArr = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
    '**********************************************
    'Ab hier keine Änderungen mehr vornehmen
    '**********************************************
    'Fehlerbehandlung ausschalten für Zell-Auswahl
    On Error Resume Next
    'Hier beginnend die Daten
    Set qStartRow = Application.InputBox("In welcher Zelle beginnen die Daten (Monat Jan !!)", "Beginn Datenzelle festlegen", "A4", Type:=8)
    If qStartRow Is Nothing Then Exit Sub
    'Hier kommen die Daten her
    Set qWks = qStartRow.Parent
    'Hier kommen die Daten hin
    Set tStartRow = Application.InputBox("In welcher Zelle soll die Übersicht beginnen?", "Beginn Übersichtszelle festlegen", "A11", Type:=8)
    If tStartRow Is Nothing Then Exit Sub
    'Anzahl Schleifen definieren
    'Anzahl Mitarbeiter die gelistet sind
    anzMA = qWks.Cells(65536, qStartRow.Column + 12).End(xlUp).Row
    'Fehlerbehandlung wieder einschalten
    Err.Clear
    On Error GoTo 0
    Set tarWks = tStartRow.Parent
    With tarWks
        For i = 1 To 12
            .Range(tStartRow.Address).Offset(0, i - 1) = monArr(i)
        Next i
    End With
    'Daten aufbereiten
    With qWks
        For n = 1 To anzMA
            For i = 1 To 12
                If IsEmpty(.Range(qStartRow.Address).Offset(n, i - 1)) Or .Range(qStartRow.Address).Offset(n, i - 1) = "*" Then
                    tarWks.Range(tStartRow.Address).Offset(n, i - 1) = .Cells(n + qStartRow.Row, 13) & " " & .Cells(n + qStartRow.Row, 14)
                End If
            Next i
        Next n
    End With
    MsgBox "Auswertung fertig"
End Sub


Gruss Rainer
Anzeige
AW: ... oder so.
14.09.2005 23:43:04
Torsten
Hallo Rainer,
ich habe den Code als Modul kopiert, aber wie geht es weiter?
Kenne mich damit gar nicht aus.
Kannst du mir helfen?
mfg Torsten
AW: ... oder so.
15.09.2005 07:26:18
Ramses
Hallo
Tabelle "Daten" wählen
Ansicht - Symbolleisten - Formular
Auf den Button "Schaltfläche" klicken
Auf die Tabelle klicken
Im darauffolgenden Dialog das Makro zuweisen
Auf die Tabelle klicken
Auf den Button klicken und wundern :-)
Gruss Rainer
Alles klar
15.09.2005 22:59:23
Torsten
Hallo Rainer, danke für deine Hilfe.
Hat gut geklappt.
mfg Torsten
AW: doch noch eine Frage
15.09.2005 23:37:01
Torsten
Hallo Rainer, hab doch noch ein Problem.
Nach deiner Anweisung hat ich es ja zum Laufen gebracht, doch leider werden bei mir nur die Monate aufgelistet.
Keine Spur von den Namen.
kannst du mir noch mal behilflich sein?
mfg Torsten
Anzeige
AW: doch noch eine Frage
16.09.2005 00:01:15
Ramses
Hallo
Der Code ist auf dein Beispiel angepasst, und da stehen die Namen in Spalte 13 bzw. 14.
Das müsstest du allenfalls anpassen.
Ansonsten weiss ich nicht wie sich die Daten zusammensetzen oder was in den Zellen steht.
Gruss Rainer
AW: Jetzt hab ichs
16.09.2005 14:08:09
Torsten
Hallo Rainer, jetzt hab ich es hinbekommen.
Hab einen kleinen Fehler gemacht.
Das Ergebnis ist wirklich klasse.
Vielen Dank nochmal.
mfg Torsten
AW: noch eine Zusatzfrage
16.09.2005 19:21:25
Torsten
Hallo Rainer, ich bins noch mal.
Ich hab mit deinem Makro noch etwas rum experimentiert. Das Makro würde ich auch gern für eine weitere Tabelle gebrauchen, doch dazu müßte es geändert werden. Vieleicht kannst du mir noch mal helfen. Das were nett.
Ich möchte in einer Tabelle, die fast gleich aufgebaut ist wie gehabt, nur die Namen stehen nicht in den Spalten M und N, sondern O und P. Und die Spalten M und N nicht mit in betracht gezogen werden.
Dann müßte das Makro die Leeren Zellen nicht mit anführen, sonden nur die, die einen bestimmten Wert haben, als Beispiel "N".
Diese Tabelle hat ca. 100 Zeilen ( Namen).
Ist dieses möglich?
mfg Torsten
Anzeige
AW: noch eine Zusatzfrage
16.09.2005 19:49:04
Ramses
Hallo
Klar kannst du das anpassen.
ist doch kein Problem
Die Spaltennummer für Namen und Vornamen anpassen
tarWks.Range(tStartRow.Address).Offset(n, i - 1) = .Cells(n + qStartRow.Row, 13) & " " & .Cells(n + qStartRow.Row, 14)
Und die Zeile
If IsEmpty(.Range(qStartRow.Address).Offset(n, i - 1)) Or .Range(qStartRow.Address).Offset(n, i - 1) = "*" Then
entsprechend dem anpassen was du abfragen willst.
If .Range(qStartRow.Address).Offset(n, i - 1) = "N" Then
Gruss Rainer
AW: noch eine Zusatzfrage
16.09.2005 20:28:37
Torsten
Hallo Rainer, danke das dich noch meiner annimmst.
Leider bekomme ich es nicht hin.
Bei der Abfrage nimmt das Makro immer noch die Leerzellen mit hinein.
mfg Torsten
Anzeige
AW: noch eine Zusatzfrage
16.09.2005 20:28:44
Torsten
Hallo Rainer, danke das dich noch meiner annimmst.
Leider bekomme ich es nicht hin.
Bei der Abfrage nimmt das Makro immer noch die Leerzellen mit hinein.
mfg Torsten
AW: noch eine Zusatzfrage
16.09.2005 20:29:03
Torsten
Hallo Rainer, danke das dich noch meiner annimmst.
Leider bekomme ich es nicht hin.
Bei der Abfrage nimmt das Makro immer noch die Leerzellen mit hinein.
mfg Torsten
AW: noch eine Zusatzfrage
16.09.2005 20:42:55
Ramses
Hallo
Wenn deine Beispieltabelle so aussieht
 
 ABCDEFGHIJKLMNOP
1                
2                
3                
4Janfebmrzaprmaijunjulaugsepoktnovdez  NameVorname
5 nmrzzn tttt t  SchreiberTorsten
6 uttn tttn t  WolffSteffi
7 t*tn tt n t  ScheelFranz
8 uttn ntnn u  HinzEgon
9 untn nnnn t  BreuerRudi
10                
 

und du den Code so angepasst hast wie im vorherigen Beitrag beschrieben
Option Explicit
Option Base 1
Sub Create_Result()
    Dim i As Integer, n As Integer
    Dim tarWks As Worksheet, qWks As Worksheet
    Dim tStartRow As Range, qStartRow As Range
    Dim anzMA As Integer
    Dim monArr()
    monArr = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
    '**********************************************
    'Ab hier keine Änderungen mehr vornehmen
    '**********************************************
    'Fehlerbehandlung ausschalten für Zell-Auswahl
    On Error Resume Next
    'Hier beginnend die Daten
    Set qStartRow = Application.InputBox("In welcher Zelle beginnen die Daten (Monat Jan !!)", "Beginn Datenzelle festlegen", "A4", Type:=8)
    If qStartRow Is Nothing Then Exit Sub
    'Hier kommen die Daten her
    Set qWks = qStartRow.Parent
    'Hier kommen die Daten hin
    Set tStartRow = Application.InputBox("In welcher Zelle soll die Übersicht beginnen?", "Beginn Übersichtszelle festlegen", "A11", Type:=8)
    If tStartRow Is Nothing Then Exit Sub
    'Anzahl Schleifen definieren
    'Anzahl Mitarbeiter die gelistet sind
    anzMA = qWks.Cells(65536, qStartRow.Column + 14).End(xlUp).Row
    'Fehlerbehandlung wieder einschalten
    Err.Clear
    On Error GoTo 0
    Set tarWks = tStartRow.Parent
    With tarWks
        For i = 1 To 12
            .Range(tStartRow.Address).Offset(0, i - 1) = monArr(i)
        Next i
    End With
    'Daten aufbereiten
    With qWks
        For n = 1 To anzMA
            For i = 1 To 12
                If .Range(qStartRow.Address).Offset(n, i - 1) = "n" Then
                    'oder wenn N unterschiedlich geschrieben wird "n" bzw. "N"
                    'If UCase(.Range(qStartRow.Address).Offset(n, i - 1)) = "N" Then
                    tarWks.Range(tStartRow.Address).Offset(n, i - 1) = .Cells(n + qStartRow.Row, 15) & " " & .Cells(n + qStartRow.Row, 16)
                End If
            Next i
        Next n
    End With
    MsgBox "Auswertung fertig"
End Sub


Dann erhältst du das als Ergebnis
 
 ABCDEFGHIJKLM
17             
18JanFebMrzAprMaiJunJulAugSepOktNovDez 
19 Schreiber Torsten  Schreiber Torsten        
20    Wolff Steffi    Wolff Steffi   
21    Scheel Franz    Scheel Franz   
22    Hinz Egon Hinz Egon Hinz EgonHinz Egon   
23  Breuer Rudi Breuer Rudi Breuer RudiBreuer RudiBreuer RudiBreuer Rudi   
24             
 

Also ich sehe da kein Problem
Gruss Rainer
Anzeige
AW: Danke Rainer
16.09.2005 20:58:13
Torsten
Hallo Rainer, war nee schwere Geburt mit mir, oder?
Aber ich bin jetzt zum Ergebnis gekommen.
Vielen Dank.
mfg Torsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige