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
Excel-Code für Mehrfachauswahl in Dropdown-Listen?

Hallo zusammen,

Ich versuche gerade ein Excel-Dokument zu erstellen, bei dem eine Mehrfachauswahl aus Dropdown-Listen möglich ist. Das heißt aus einer Liste sollte es möglich sein mehrere Werte anzuwählen. Das habe ich auch mit dem untenstehenden VisualBasic-Code gemeistert. Allerdings habe ich erstens das Problem, dass auch eine Mehrfachauswahl des immer gleichen Wertes möglich ist. Theoretisch könnte also in einer Zelle x-mal derselbe Werte auftauchen. Dies soll natürlich nicht möglich sein. Bei Doppelauswahl desselben Wertes soll dieser aus der Zelle wieder verschwinden.

Mein zweites Problem ist, dass ich bislang nur 2 zwei Dropdown-Listen mit Mehrfachauswahl eingefügt bekomme. Sobald ich eine dritte Spalte versuche zu implementieren, bekomme ich eine Fehlermeldung für meinen Code.

Dadurch, dass ich mich mit dem Ganzen nicht so wirklich auskenne, wäre es sehr nett, wenn mir jemand helfen könnte.

Danke!

 

Bisheriger Code:

 

Private Sub Worksheet_Change(ByVal Target As Range)

** Mehrfachauswahl über DropDown-Liste

'** Einfügen im Code-Container des betreffenden Arbeitsblattes

 

'** Dimensionierung der Variablen

Dim rngDV As Range

Dim wert_old As String

Dim wertnew As String

 

'** Errorhandling

On Error GoTo Errorhandling

 

'** Mehrfachauswahl im definierten Bereich "Abteilungen" und "Themen" (Bsp. J2:J2000, I2:I2000) durchführen

If Not Application.Intersect(Target, Range("J2:J2000", "I2:I2000")) Is Nothing Then

 

 '**Range definieren

 Set rngDV = Target.SpecialCells(xlCellTypeAllValidation)

 If rngDV Is Nothing Then GoTo Errorhandling

  

 '** Prüfen, ob eine gültige Zelle ausgewählt wurde und Werte eintragen

 If Not Application.Intersect(Target, rngDV) Is Nothing Then

   Application.EnableEvents = False

   wertnew = Target.Value

   Application.Undo

   wertold = Target.Value

   Target.Value = wertnew

   If wertold <> "" Then

     If wertnew <> "" Then

       Target.Value = wertold & ", " & wertnew

     End If

   End If

 End If

 Application.EnableEvents = True

End If

 

Errorhandling:

Application.EnableEvents = True

End Sub

Visual Basic, Microsoft Excel, VBA, Dropdownliste
Excel VBA Datenüberprüfung beim Einfügen (Strg+V) von Text in Zelle aufrecht erhalten?

Hallo zusammen,

ich greife gerade im Rahmen eines Projekts per Datenüberprüfung auf eine Auswahl von 6000+ Zellen zu und möchte falls ein Teil, das nicht zu den 6000 gehört eine Fehlermeldung ausgeben. Nun habe ich die Problematik, dass die Zelle mit der Datenüberprüfung eine Eingabezelle sein wird, d. h. der Benutzer wird Werte aus anderen XML Dokumenten hereinkopieren. Dies Formatiert die Zelle aber Standardmäßig um und entfernt die eingerichtete Datenüberprüfung.

Gibt es hier eine einfache Lösung dies zu verhindern? Ich habe es auch schon mit Excel VBA versucht (s. Quelltext) aber hier konnte ich nur die Datenüberprüfung nachdem sie entfernt wurde wieder hinzufügen. Das Problem hierbei ist, dass dem User keine Fehlermeldung angezeigt wird nachdem er den Text in die Zelle kopiert hat.

Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$2" Then

With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertWarning, Operator _
        :=xlBetween, Formula1:="='Zuord. Teil-Kart. Datenquelle '!$A$1:$A$6168"
        .IgnoreBlank = True
        .InCellDropdown = False
        .InputTitle = ""
        .ErrorTitle = "Teil nicht verfügbar"
        .InputMessage = ""
        .ErrorMessage = _
        "Teil nicht verfügbar, da:" & Chr(10) & "a) Teil existiert nicht" & Chr(10) & "b) Teil existiert, wird aber nicht in Kartonage verpackt --> Manuelle Frachtberechnung nötig" & Chr(10) & "c) Teil ist neu --> Rückmeldung an *** / ***"
        .ShowInput = True
        .ShowError = True
    End With
End If
Microsoft Excel, VBA
Was muss man in Excel eingeben, damit das Datum nicht aktualisiert wird?

Hallo, ich habe wieder eine Excel Frage: ich habe eine Tabelle, Spalten A-H. In der Spalte G habe ich den Status, wo ich eine DropDown-Liste habe und zwischen: "in Bearbeitung", "Material bestellt", [...], "erledigt" auswählen kann. In Spalte H habe ich als Überschrift "erledigt am", es soll also in Spalte H, sobald ich in Spalte G den Status "erledigt" ausgewäht habe, das aktuelle Datum erscheinen. Ich habe also in Spalte H folgende Formel: "=WENN(G50="erledigt";TEXT(JETZT();"TT.MM.JJ");"")". Ich glaube, ihr wisst, worauf ich hinaus wil, also nach dem Speichern soll dich das Datum nicht ändern, tut es aber natürlich. (Ist ja klar!) Aber, da ich erst seit ein paar Monaten mit Excel arbeiten, habe ich noch keine Ahnung. Durch das Stöbern im Internet, habe ich rausgefunden, dass es nicht einfach so funktioniert (oder doch?), sondern, dass man dafür ein Makro braucht (wovon ich absolut keine Ahnung habe). Also so weit bin ich: ich habe die Tabelle offen vor mir, ich klicke auf den Tabellen-Namen und klicke auf "Code anzeigen", dann öffnet sich ja ein Makro Fenster. So, was soll ich nun machen? Ihr wisst ja, welche Spalte ich brauche, es wäre schön einen Code zu haben. :-) Und wenn ich da den Code eingefügt habe, was muss ich dann machen? Ich würde dann auf "speichern" klicken, dann öffnet er ja ein Fenster und weist mich darauf hin, dass ich die Datei als eine Mappe mit Makros speichern muss. Richtig? Dann würde ich das tun. Und dann wenn ich das gespeichert habe, müsste ich die Makros (-> "Inhalt aktivieren") jedes Mal, wenn ich die Datei öffne anklicken, oder? und dann habe ich das, was ich will. Bitte helft mir, ich verzweifle so langsam...

Microsoft Excel, Spalten, Befehle, Makro, VBA, ändern, aktuell, Code, Datum
Wie kann ich bei Excel einen Button erstellen der abspeichert?

Hallo,

Ich würde gerne bei Excel einen Button erstellen, der die Excel mappe auf dem Desktop abspeichert. Der Name der Datei soll in Zeile A1 stehen.

Den Button habe ich bereits erstellt. Ich scheitere noch bei dem Makro, weil ich keine ahnung davon habe. Ich habe etwas im Internet gefunden, was meinen Vorstellungen nahe kommt. Ich habe versucht es anzupassen, aber irgendwie klappt das alles nicht.

Sub Schaltfläche1_Klicken()
Dim lw_pfad As String
lw_pfad = ActiveSheet.Range("A1").Value
lw_pfad = InputBox("Geben Sie hier das Laufwerk und den Pfad an, wo die Datei gespeichert werden soll." & Chr(13) & Chr(13) & "(Ihre Eingabe wird in A1 als neuer Default-Wert gespeichert.)", "Datei speichern unter...", lw_pfad)
If lw_pfad = "" Then
  MsgBox "Die Datei wird nicht gespeichert, da Sie [Abbrechen] gedrückt oder nichts eingegeben haben.", , "Abbruch"
  Exit Sub
Else
  If Right(lw_pfad, 1) <> "\" Then lw_pfad = lw_pfad & "\"
  ActiveSheet.Range("A1").Value = lw_pfad
Rem MsgBox lw_pfad
ActiveWorkbook.SaveAs lw_pfad & ActiveSheet.Range("B2").Value & ActiveSheet.Range("C4").Value & ".xls"
MsgBox "Die Datei wurde unter " & lw_pfad & ActiveSheet.Range("B2").Value & ActiveSheet.Range("C4").Value & ".xls gespeichert.", , "OK"
End If
End Sub

Das ist, was ich bis jetzt habe.

Vielen Dank für die Hilfe im Voraus!

Computer, Microsoft, Microsoft Excel, Excel 2010, Technik, Programm, programmieren, Makro, VBA, Technologie, Spiele und Gaming