Am Verzweifeln: Excel Filter automatisch aktualisieren?

Hallo liebe Community,

ich weiß, es gibt mehrere Leute, die diese Frage schon gestellt haben, aber ich bekomme es einfach nicht hin. Vielleicht habe ich auch nur gerade eine Denk(Dummheits)Blockade, versuche das seit ca 2 Stunden zu realisieren.

Ich habe eine Tabelle mit diversen Daten und ein (Balken)Diagramm, welches für jede weitere Zeile in der Tabelle einen neuen Balken hinzufügen sollte. Das ist an sich nicht schwer, aber ich möchte, solange noch keine Daten vorhanden sind, keine leeren Stellen im Diagramm... (siehe: https://gyazo.com/346a1e059ea781ea82d471505856904a) ...und das kriege ich nicht hin.

Ich habe eine Hilfstabelle gemacht und einen Filter darüber gelegt, dass alle leeren ("") Zellen ausgeblendet werden, das funktioniert auch soweit im Diagramm, aber ich muss nach jedem Eintrag in die eigentliche Tabelle wieder den Filter von Hand aktualisieren und das ist ärgerlich.

Ich hoffe ihr könnt mir helfen, sonst sehe ich schwarz für meinen PC und mein Fenster (und eventuelle Fußgänger). Erklärt es am besten so, wie ihr es einem 6 Jährigen erklären würdet. :)

Grüße Tuesday

/ps: Was ich bisher ausgegraben habe und (vermutlich wegen mangelnder - bis nicht existenter - VBA Kenntnis) nicht funktioniert hat:

  • office-loesung.de/ftopic93223_0_0_asc.php
  • office-loesung.de/ftopic60304_0_0_asc.php
  • gutefrage.net/frage/excel-gefilterte-daten-automatisch-aktualisieren
Microsoft Excel, Filter, VBA, Aktualisieren
Wie kann ich Daten von einer Internetseite automatisch in Excel importieren?

Hallo zusammen,

ich bin gerade dabei, eine Datenbank zu erstellen und würde dafür gerne Daten von einer Website automatisch auslesen lassen. Konkret geht es um die Arbeitslosenquoten aller Landkreise und Städte, die von der Bundesagentur für Arbeit monatlich veröffentlicht werden.

Hier ein Link zu einer Beispielstadt: https://statistik.arbeitsagentur.de/Navigation/Statistik/Statistik-nach-Regionen/Politische-Gebietsstruktur/Bayern/Amberg-Stadt-Nav.html

Im Beispiel sollte die Arbeitslosenquote insgesamt (5,9) und der Stand der Angabe (Mai 2016), der über der Tabelle steht, ausgelesen werden.

Im HTML-Code ist die Quote in folgender Zeile angegeben: 5,9 Beim Datum sieht es folgendermaßen aus: Ar­beits­markt im Über­blick - Be­richts­mo­nat Mai 2016 - Am­berg, Stadt

Dabei sollten die ausgelesenen Werte in zwei separaten Excel-Feldern ausgegeben werden. Das muss aber nicht zwingend alles in einem Makro geschehen. Zwei Makros für die unterschiedlichen Felder wären optimal, da ich den Code dann wahrscheinlich auch besser nachvollziehen kann.

Da die direkte Webabfrage über Excel nicht funktioniert, weil die Seite nicht korrekt geladen wird, denke ich, dass VBA hier unumgänglich ist, oder? Ich habe jedoch leider keine Programmierkenntnisse und bin aus den Einträgen in diversen Foren leider auch nicht schlau geworden.

Im Nachhinein müsste das Makro entsprechend anpassbar sein, sodass ich auch die Daten der anderen Städte auslesen kann (die Quellseite ist immer nach dem gleichem Prinzip aufgebaut).

Falls jemand eine Idee hat, wie das Problem zu lösen ist, würde ich mich sehr darüber freuen! Vielen Dank!

Computer, Microsoft, Visual Basic, Microsoft Excel, Daten, VBA, Datenbank, Tabelle, Abfrage
Wie kann ich bei VBA nach mehreren Kriterien in einer Zeile suchen?

Hallo zusammen.

Ich hab leider nix gescheites zu meiner Problemstellung gefunden, deshalb frage ich jetzt einfach mal direkt nach: Ich möchte in einer großen Tabelle nach mehreren Kriterien in der ersten Zeile suchen. In dieser Zeile sind Überschriften (aus einer .xml übernommen). Leider wiederholen sich die Überschriften ab und an, allerdings mit den unterschiedlichsten Ziffern als Anhängsel (zb AKMKaufteile, AKMKaufteile5, AKMKaufteile324...). Das wäre jetzt aber noch kein Problem, da ich ja normalerweise eh nur nach Teilen des Wortes suche. Ich habe allerdings auch Überschriften die ziemlich ähnlich sind und mit als Treffer gewertet werden so wie ich das mache (zb AKMKaufteileD34, AKMKaufteileB412... also immer entweder das D oder das B mit da drin, und diese Spalten brauche ich nicht).

Zusammengefasst möchte ich einfach nur die erste Zeile nach AKMKaufteile (das ohne D und B) suchen und auch die Zellen/Spalten haben, wo die Ziffern angehängt sind; es handelt sich dabei um Preise, bei D ist das Datum und B der Benutzername angegeben, letztere beiden sind uninteressant).

For i = 1 To 1000
   If InStr(1, Cells(1, i).Value, "AKMKaufteile") > 0 And InStr(1, Cells(1, i).Value, "AKMKaufteileB*") = 0 And InStr(1, Cells(1, i).Value, "AKMKaufteileD*") = 0 Then
      For j = 1 To 300
         If InStr(1, Cells(j, i).Value, "") > 0 Then
             Cells(j, i).Activate
              ActiveCell.Copy Destination:=Worksheets("Ergebnis").Cells(j, 10).Offset(1)
         End If
      Next j
         
   End If
Next i

(So klappt es leider nicht)

Vielen Dank für jeden Tipp der mich weiterbringt ::)

Gruß

Jan

Microsoft Excel, Filter, Makro, VBA
Wie kann ich in VBA-Excel per laufender Nummer meine Userform Einlesen und danach diese "Einlesung" bearbeiten?

Hi, ich arbeite momentan an einer Userform(Bild) womit ich in meiner Tabelle "Gesamtdaten": In die erste leere Zeile einen neuen Mitarbeiter anlegen kann.

Diese läuft auch einwandfrei.

Der Übernehmen Button hat folgende Programierung: (ist nur der teil den Ihr auch auf dem Screenshot seht ... der rest wäre zu viel :D )

Private Sub cmdÜbernehmen_Click()

Dim ELZ As Long

ELZ = Sheets("Gesamtdaten").Cells(Rows.Count, 1).End(xlUp).Row + 1

Sheets("Gesamtdaten").Cells(ELZ, 1).Value = Me.TXTlfdNr.Value
Sheets("Gesamtdaten").Cells(ELZ, 2).Value = Me.TXTLehrjahr.Value
Sheets("Gesamtdaten").Cells(ELZ, 3).Value = Me.CBAusbildungsart.Value
Sheets("Gesamtdaten").Cells(ELZ, 4).Value = Me.CBAusbilder.Value
Sheets("Gesamtdaten").Cells(ELZ, 5).Value = Me.TXTName.Value
Sheets("Gesamtdaten").Cells(ELZ, 7).Value = Me.TXTVorname.Value
Sheets("Gesamtdaten").Cells(ELZ, 8).Value = Me.TXTPersonalnummer.Value
Sheets("Gesamtdaten").Cells(ELZ, 9).Value = Me.CBGeschlecht.Value
Sheets("Gesamtdaten").Cells(ELZ, 10).Value = Me.TXTStrasseHsNr.Value
Sheets("Gesamtdaten").Cells(ELZ, 11).Value = Me.CBPLZ.Value
Sheets("Gesamtdaten").Cells(ELZ, 12).Value = Me.CBOrt.Value

Der Abbruch button:

Private Sub cmdAbbruch_Click()

Unload Me

End Sub

Nun würde ich jedoch noch gerne einen button haben der wenn ich oben im Textfeld "lfdNr" eine schon vorhandene nummer eingebe. Dieser sofort alle daten in die jeweilge Combbox/Textbox einträgt und falls ich eine änderung vornehme diese auch mit rückfrage (msgbox Datensatz wurde geänder etc.) auch wieder in die Zeile der passenden LfdNr übernimmt.

Ich bin recht neu in VBA ... bzw. arbeite diese Jahr das 1. mal überhaupt mit excel ... desswegen hole ich mir (wenn ich nach [nun fast 1 woche] suchen keine lösung zu diesem problem finde die mir "zusagt" bzw. ich diese verstehe ... ( will ja was lernen ;'D )

Ich entschuldige mich schonmal für mein etwas "konfuses" auftreten aber hoffe auf Unterstützung :)

Was villeicht auch noch zu erwähnen ist:

Die lfdNr setzt sich automatisch beim öffnen der Userform auf die LfdNr die ein Neuer Datensatz automatisch bekommen sollte.

    TXTlfdNr = Sheets("DropDown-Menü's").Range("J15") 'In J15 steht die Formel =ANZAHL2(Gesamtdaten!A2:A502)

MfG Tim

Bild zu Frage
VBA, einlösen, UserForm
Wie kann ich in VBA-Excel einen Filter setzen über einer CheckBox?

Hi,

ich suche eine einfachere Lösung für meine UserForm um über CheckBoxen meine Tabelle zu Filtern.

Im grunde möchte ich also, wenn ich einen Wert ankreuze soll dieser Gefiltert werden.

Wie im Beispiel (unten):

FKEP und KKEP angekreuzt = FKEP und KKEP angezeigt.

Nur KKEP angekreuzt = nur KKEP angezeigt

"Wert" der gefiltert werden soll | CheckBox Name
 FKEP                              CBFilterFKEP
 KKEP                              CBFilterKKEP
 KfB                               CBFilterKfB
 ausgesch.                         CBFilterausgesch
 beendet                           CBFilterbeendet
 EQ - KfB                          CBFilterEQKfB
 EQ - FKEP                         CBFilterEQFKEP

Mein momentaner Code schaut wiefolgt aus:

    Private Sub CBFilterFKEP_Click()

If CBFilterFKEP = True Then

    Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
    "FKEP"), Operator:=xlFilterValues

If CBFilterKKEP = True Then

    Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
    "FKEP", "KKEP"), Operator:=xlFilterValues

End If
End If
End Sub

Private Sub CBFilterKKEP_Click()

    If CBFilterKKEP = True Then

        Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
        "KKEP"), Operator:=xlFilterValues

    If CBFilterFKEP = True Then

        Sheets("Gesamtdaten").Range("$A$2:$EQ$502").AutoFilter Field:=3, Criteria1:=Array( _
        "KKEP", "FKEP"), Operator:=xlFilterValues

    End If
    End If
    End Sub

Soweit so gut ... nun habe ich aber nur FKEP und KKEP "abgestimmt" ... muss ich nun alle 5 Werte auch "abstimmen" ? Das wird nämlich ein SEHR langer code ... und ich könnte wetten das es in VBA viel leichter geht ...

Hat wer eine Idee von euch?

MfG Tim

Microsoft Excel, Filter, VBA, Sortieren, Tabelle, checkbox
Wie erstelle ich eine variable intelligente Tabelle?

Eine Bestandsauswertung wird in Excel(2010) ausgegeben und tägl. in meine zu analysierende Tabelle in einem Blatt (Abl.Schleifpuffer) abgelegt bzw. überschrieben. In diesem Blatt soll mittels VBA eine intelligente Tabelle erstellt werden.

Per Aufzeichnung klappt das ganz gut, nur gibt es da paar Haken:

  1. sollte sich die Auswertung (Quelle) ändern aufgrund Programmanpassungen, verschieben sich auch die Zellen. So beginnt sie nicht von A11 sondern evtl. von B12

  2. erstelle ich eine intelligente Tabelle, so gibt mir das Makro immer die Größe von der zuerst erstellten Tabelle "$A$11:$N$853" wieder, sodass bei der nächsten Auswertung die Zeilen ab 854 gar nicht mit einfließen. D.h. die Auswertung wird tägl. gemacht und die Länge ist definitiv variabel.

Wie bekomme ich Excel dazu das er automatisch erkennt "Ab Spalte A und Zeile 11 beginnt die Tabelle" und endet bei Spalte A und Zeile 999.

Derzeit ist die Aufzeichnung so verlaufen:

    Sub konvertiere_Abl_als_Tabelle()
'
' konvertiere_Abl_als_Tabelle Makro
'

'
    Sheets("Abl. Schleifpuffer").Select
    Range("A11").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$11:$N$853"), , xlYes).Name = _
        "Abl.Schleifpuffer"
    Range("Abl.Schleifpuffer[#All]").Select
End Sub

Für eure Unterstützung wäre ich sehr dankbar.

Bild zu Frage
Microsoft Excel, Makro, VBA
Wie kann ich Word Textmarken mit einem Excel Makro befüllen?

Hallo liebes Gute Frage Forum,

ich bin ein blutiger Anfänger im Programmieren und möchte mich trotzdem an eine, wie ich finde, nicht ganz so leicht Aufgabe wagen.

Ich hoffe es erbarmt sich jemand und hilft mir weiter.

Meine Aufgabe:

Ich habe eine ExcelDatenbank die mehrere Einträge für mehrere Kunden verwaltet. ( Name, Anrede, Straße usw. )

Außerdem habe ich ein Word Dokument erstellt in das ich die Word Textmarken eingefügt habe ( Ebenfalls so benannt Name, Straße, Anrede usw. )

Nun möchte ich in Excel eine Zeile anklicken und anschließend das Makro ausführen. ( Das Makro soll dann nur für die Ausgewählte Zeile ausgeführt werden )

Die Vorlage soll aber nicht überschrieben werden, es soll ein neues Word Dokument erstellt werden, in dem die Felder dann ausgefüllt sind ( Am besten mit anderem Speicherpfad den ich dann auch direkt im Makro eingeben kann. )

Natürlich habe ich es auch schon selber versucht, allerding haben mir die Codeschnipsel die ich aus dem Internet geholt habe nicht ganz geholfen.

Hier mein Code: http://paste2.org/wFtw5UId

Mein Problem ist es nun, dass nur das letzte Textfeld wo ich die Referenz auf "Hallo" gesetzt habe befüllt werde, die anderen jedoch nicht obwohl excel keine fehlermeldung ausspuckt..

Außerdem hätte ichs gerne so wie oben beschrieben, dass er nur die Vorlage mit den Textmarken öffnet aber nicht überschreibt sondern ein neues Dokument mit den ausgefüllten Textmarken erstellt. (Pfad soll im Makro bestimmt werden)

Ich hoffe sehr das mir jmd. weiter helfen kann

Einen wunschönen Tag noch :)

Microsoft Word, Microsoft Excel, Makro, VBA, Datenbank, Vorlage, Befüllen
Organigram Excel mit einklappen und ausklappen (per Makro?)?

Hallo Zusammen,

etwas komplizierteres Problem hier: (zumindest bin ich nach stundenlangem Googeln auf englisch und deutsch auf kein akzeptables ergebis gekommen)

Im Prinzip klingt es einfach: Ich will ein Organigramm erstellen per Excel (Word wuerde auch noch gehen, keine sonstige Freeware da ich im Buero keine Software runterladen kann/darf). Nun will ich aber kein "statisches" Organigram (zb per SmartArt). Es soll eher so etwas sein wo ich auf einen Namen klicke und dann alle untergeordneten Leute/Mitarbeiter aufklappen (NUR DIE VON DEM JEWEILIGEN "BOSS").

Mit Gruppieren etc. komme ich nicht vorran da ich 1. will dass es per Mausklick auf den namen geht und 2. ich nicht mehr als 8 untergruppen erstellen kann damit.

Am liebsten auch ein Makro dass ich anpassen koennte ?Hab hier noch ein Bild was vllt etwas besser erklaert was ich meine.

Zum Bild:Ich will dann quasi dass am Anfang nur "CEO" da steht. Dann klicke ich zb auf "C" dann poppen 1,2,3,4,5 auf und ich klicke auf "1" dann poppen 11,12,13 auf etc.. der rest soll am besten verborgen bleiben (viel uebersichtlicher)

Hoffe, dass war einigermassen gut erklaert. Bei Fragen etc einfach nachfragen...Ich finde dazu leider auch wirklich nirgends etwas (ausser irgendwelcher Freeware etc.) Aber es MUSS doch moeglich sein?

Danke euch vieeelmals schonmal!!!

EDIT:

hab jetzt mal probiert einen Makro zu schreiben:

Sub collapse()

Selection.Offset(1, 1).Select
Range(Selection, Selection.End(xlDown)).

Select Selection.EntireRow.Hidden = True

End Sub

_______

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If Target.Column = 2 Then

Target.Select

Call collapse

End If

If Target.Address = "$B$10" Then

Target.Select

Call collapse

End If

End Sub

____

Problem: Wenn ich es mit "target.column" mache (was mir lieber ist) dann wuerde ich gerne haben dass er bei leeren zellen nichts macht in dieser spalte... wie geht das genau? und hat einer eine ahnung wie ich das hinkrieg dass wenn ich WIEDER auf die gleiche zelle gehe er mir des rueckgaengig macht? Ich hab so eine ahnugn mit true/false denke ich mal aber habe keine ahnung wie ich das umsetzen kann..

Also irgendwie dass wenn ich einmal draufdruecke und des eingeklappt ist er weiss visibile = false oder sowas und wenn ich wieder draufdruecke soll er halt true machen versteht ihr mich :D?

Bild zu Frage
PC, Microsoft Word, Microsoft, Office, Microsoft Excel, Programm, programmieren, VBA
Mit Access und VBA einen formatierten Excel-Export durchführen?

Guten Tag, ich hänge mal wieder bei einer Access - Excel Frage fest.

Ich habe ein Access eine Abfrage geschrieben, die mir sortiert eine ID, den zugehörigen Namen und alle dazu zugewiesenen Daten ausgibt.

Da jede Id + name mehrere Daten haben kann, steht das ganzen in mehreren zeilen untereinander. Ich möchte das ganze nun in eine Excel-Datei via Makro exportieren und das ganze so formatieren das Id + name nur einmal drann steht und dann alle Daten.

Das ganze sieht also eig. so aus.

id || name || daten

1 || n1 || daten1

1 || n1 || daten2

1 || n1 || daten3

und soll in der Exel Datei dann so aussehen.

id || name || daten

1 || n1 || daten1

_ || _ || daten2

_ || _ || daten3

_ bedeutet das dort kein Eintrag in der Zelle mehr steht. Ich habe das bisher so gemacht, das ich Die Daten aus Access händisch in eine Excel kopiert habe und dann dort mit einem Makro alles raus sortiert habe. Dim xErsteZeile As Long Dim xZeile As Long

        xErsteZeile = Cells(Rows.Count, 1).End(xlUp).Row
    
        For xZeile = xErsteZeile To 1 Step -1
          If Application.WorksheetFunction.CountIf(Columns(1), Cells(xZeile, 1).Value) > 1 Then
                Range("A" & xZeile).Select
                Selection.Delete Shift:=xlUp
                Range("B" & xZeile).Select
                Selection.Delete Shift:=xlUp
          End If
        Next

Ich würde das ganze jetzt aber über Access machen da es ja der Ausgangspunkt ist. Wenn ich ein Export in ACCES anschaue in VBA sieht dieser ja so aus.

    DoCmd.OutputTo acOutputQuery, "jh_01_01_Abfrage", "Excel97-Excel2003Workbook(*.xls)", "", True, "", , acExportQualityPrint

kann ich davor die Daten noch bearbeiten wie in Excel? Und wenn ja kann mir eventuell jemand einen Tipp geben?

Würde mich sehr freuen.

Grüße

Frost.

Office, Microsoft Excel, programmieren, Access, Makro, VBA
Wie kann man in Access mehrere Filter per ODER verknüpfen?

Ich habe eine Access Datenbank-Tabelle mit den Einträgen Ersatzteilnummer, Materialtext, Typennummer, Sonstige Nummer und Kommentar.

Über ein Formular mit Suchfeld möchte ich mir Alle Datensätze anzeigen lassen, bei denen mindestens eine der Spalten meiner Datenbank den Suchbegriff enthält. Es sollen also alle Datensätze angezeigt werden bei denen die Eingabe im Materialtext vorkommt ODER in der Typennummer ODER im Kommentar usw.

Der Filter wie unten eingefügt funktioniert mehr oder weniger, jedoch habe ich so keine ODER Verknüpfung. Hat vielleicht jemand eine Idee, wie ich das realisieren könnte?

Vielen lieben Dank!! Max

If Len(Me!txtQSf) > 0 Then

Me.Filter = ""
       If Ersatzteilenummer Like "" & Me!txtQSf & "" Then
       Me.Filter = "Ersatzteilenummer LIKE '" & Me!txtQSf & "'"
       Me.FilterOn = True
    Else
        If Materialtext Like "*" & Me!txtQSf & "*" Then
            Me.Filter = "Materialtext LIKE '*" & Me!txtQSf & "*'"
            Me.FilterOn = True
        Else
                If Typennummer Like "*" & Me!txtQSf & "*" Then
                     Me.Filter = "Typennummer LIKE '*" & Me!txtQSf & "*'"
                     Me.FilterOn = True
                Else
                  If Kommentar Like "*" & Me!txtQSf & "*" Then
                      Me.Filter = "Kommentar LIKE '*" & Me!txtQSf & "*'"
                      Me.FilterOn = True
                  Else
                    If Sonstige_Nummer Like "*" & Me!txtQSf & "*" Then
                            Me.Filter = "Sonstige_Nummer LIKE '*" & Me!txtQSf & "*'"
                            Me.FilterOn = True
                    Else
                        Me.Filter = "Materialtext LIKE '*" & Me!txtQSf & "*'"
                        Me.FilterOn = True                              
     End If
     End If
     End If
     End If
     End If
Else
Me.Filter = ""
Me.FilterOn = False
End If

End Sub

Filter, Microsoft Office, programmieren, Access, VBA, Datenbank

Meistgelesene Fragen zum Thema VBA