VBA – die neusten Beiträge

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 zum Beitrag
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 zum Beitrag
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 zum Beitrag
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

Zeile bei Excel ausblenden, wenn bestimmte Zeile leer ist

Hallo,

folgende Situation: All meine Post sammel ich unsortiert in Ordnern. Um diese zu finden habe ich sie Nummeriert (3/112 [3-Ordner;112-laufende Nummer in diesem Ordner]). Um bestimmte Briefe wieder finden zu können, habe ich eine Exceltabelle angelegt. Spalten ABC geben die Nummerierung wieder, in Spalte D ist der Absender, E enthält das Datum des Schreibens und in F stehen bestimmte Inhalte des Briefs um diese mit Strg+F finden zu können.

Das klappt soweit auch alles gut. Jetzt möchte ich das aber alles mit Makros automatisch machen. Also dass ich in einem Feld einen Suchbegriff einge, und dann nurnoch die Zeilen angezeigt werden, die diesen enthalten.

Bsp.: Ich Suche nach "Rechnung" - es sollen alle Briefe, bei denen ich diesen Tag in irgendeiner Art in Spalte F eingegeben habe angezeigt werden. Also sowohl "Rechnung" als auch "InternetRECHNUNGsbetrag" sollen stehen bleiben. Alle anderen Zellen sollen ausgeblendet werden.

In VBA habe ich bisher das eingegeben, was auch in einem Testsheet geklappt hat (Also natürlich nur das Zeilenausblenden)

Sub test() Dim x As Integer

Tabelle1.Activate x = 2 Do If Cells(x, 6).Value = "" Then Rows(x).EntireRow.Hidden = True Else Rows(x).EntireRow.Hidden = False End If x = x + 1 If Cells(x, 1).Value = "Gesamt" Then Exit Do Loop

End Sub

Anschließend habe ich in meiner Origionalen Tabelle eine Hilfsspalte eingefügt, die nach den Wörtern in Spalte D und F suchen soll und das Wort oder etwas anderes in der Hilfsspalte wiedergibt, damit der oben ganannte Code alles ausblenden kann. Habe ich so leider nicht hinbekommen.

Kann mir jemand helfen? ich denke der Ansatz ist gut und auch umsetzbar. Ich bin allerdings für andere Lösungsansätze offen. Bedenkt dabei aber bitte, dass ich eine VBA-Bull bin, also eventuell eine kleine Erklärung, was mit welchen Variablen geimt ist, dass ich das anpassen kann.

Vielen Dank schonmal im Voraus

Microsoft Excel, VBA

Meistgelesene Beiträge zum Thema VBA