Office: 2 Tabellenblätter

Helfe beim Thema 2 Tabellenblätter in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe mich hier angemeldet, da ich mit einer Funktion nicht weiter komme. Bin in Sachen Excel wenig fortgeschritten. Kenne die... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von WenigClever, 9. Januar 2021.

  1. 2 Tabellenblätter


    Hallo,

    ich habe mich hier angemeldet, da ich mit einer Funktion nicht weiter komme. Bin in Sachen Excel wenig fortgeschritten. Kenne die WENN-Funktionen und so Anfangsspielereien, weiter jedoch nicht.

    VBA /Makro habe ich mir angeschaut, das lerne ich nicht in den nächsten Tagen / Wochen. Interessant ist es, aber benötige dafür viel Zeit die ich in nächster Zeit nicht habe. Daher möchte ich es auf dem leichteren Weg lösen.


    Ich schildere mal mein Anliegen in Excel:

    2 Tabellenblätter:

    Im 1. Tab-Blatt möchte ich Firma bzw. Kunden auflisten mit sämtlichen Info's (Adresse, Kontaktmöglichkeiten, usw...). Hier habe ich unter einigen Kunden die Drop-Down-Funktion eingefügt, um Kunden zu filtern (eine Firma - verschiedene Ansprechpartner).

    Im 2. Tab-Blatt liste ich von den Firmen / Kunden deren Anfragen / Angebote.

    Nun soll es gehen, wenn ich im 1. Tab-Blatt die Firma / den Kunden filtere, das im 2. Tab-Blatt nur zu dem Kunden die Anfragen / Angebote angezeigt werden. Damit man sich schnell einen Überblick verschafft.

    Mit der Filterfunktion habe ich es heute versucht, jedoch gescheitert. Wie könnte ein Lösungsansatz aussehen?

    Vielen Dank & Grüße

    WenigClever

    :)
     
    WenigClever, 9. Januar 2021
    #1
  2. Hi,

    womöglich wäre hierfür ein Datenschnitt geeignet.

    Pack alles in eine Tabelle.

    Klicke in den Datenbereich dieser einen Tabelle.

    Drücke STRG+T (oder Einfügen ->Tabelle)

    Anschließend gehst Du auf Einfügen -> Filter -> Datenschnitt

    Rest wirst dann schnell erkennen.










    Das Kleingedruckte:
    VBA geht auch. Aber wozu.
    Bei vielen vielen Datensätzen käme Access und dessen Berichte für hübsches Aussehen infrage.
     
  3. Hi,

    prinzipiell wäre Dein Vorhaben zwar machbar, ergibt aber keinen Sinn. Wenn ich Aufträge nach Kunden filtern will, dann filtere ich die in der Auftragstabelle und nicht in der Kundendatentabelle. In der Auftragstabelle muss ja mindestens eine kundenspezifische Spalte enthalten sein.

    Alles in eine Tabelle zu packen, wie von @Mase vorgeschlagen, halte ich ebenfalls nicht für sehr sinnvoll, da hierbei etliche, unnötige Redundanzen von Kundendaten generiert werden müssten (für jeden neuen Auftrag des gleichen Kunden je eine).
     
  4. 2 Tabellenblätter

    Hallo WenigClever,

    eine Beispieltabelle (Exceldatei, kein Bild) als Anhang wäre hilfreich. Welche Excelversion wird verwendet?
     
  5. Hallo,

    zuerst danke für eure Mithilfe.

    Excel ist die Version 2010. Ich habe im Netz eine Beispieldatei heruntergeladen mit einer simplen Eingabemaske. Das funktioniert ganz gut. Mit einem Button öffnet sich diese und mir werden die Einträge angezeigt. Ich habe versucht den VBA-Code zu entschlüsseln, grob sehe ich worum es an den Abschnitten geht - es steht ja immer ein Kommentar dazu.

    Trotz ausgiebiger Suche finde ich folgender (meiner) Wunschbeschreibung keinen passenden Code oder wie man den aufbaut.

    Und zwar möchte ich nun auf dem 1. Tabellenblatt noch einen Button haben, wo mir nur der Kundenname (Zeile A - ab Spalte 5 fangen die Kundennamen an) in einer Eingabemaske (Anzeigenmaske) angezeigt werden und ich einen Kunden in der Maske anklicken kann und auf einen Button in der Maske drücke und dann auf dem 2. Tabellenblatt nur von dem gewählten Kunden die Anfragen / Angebote (einfach die Einträge) anzeigt.

    Danke und planlose Grüße
     
    WenigClever, 12. Januar 2021
    #5
  6. Und wo ist die Beispieldatei?
     
  7. Die habe ich auf online-vba gefunden. Tutorialuserform_2.
     
    WenigClever, 12. Januar 2021
    #7
  8. 2 Tabellenblätter

    Hesch gmeint Du sodsch mein Vorschlag id probiere, gell?
    Ischs doi oigene Firma odr wie?
     
  9. Bitte nicht auf schwäbisch - versteht ja nicht jeder.

    Wie lautet ein VBA-Code wo in der Listbox Einträge ab A5 anzeigt?
     
    WenigClever, 12. Januar 2021
    #9
  10. Ich biete Dir gern Hilfe zur Selbsthilfe.
    Da Du aber keinen Code lieferst, kann ich nicht aktiv werden.

    Womöglich lieferst Du keinen, da Du nicht weißt wie oder welchen. Ist auch ok.
    Aber das sagt mir, dass diese Geschichte dann womöglich scheibchenweise voranschreiten wird, bis Du eine pfannenfertige Lösung hast. Weitere Antworten hast Du ja bekommen. Vielleicht ergibt sich daraus etwas.

    Ich bleibe dabei:
    Sind es wenige Datensätze, schau Dir mein Vorschlag aus #2 an.
    Sollten es mehrere sein, lies mein Kleingedrucktes - man kann in KMUs durchaus mit Access und dessen Berichte arbeiten ohne Programmier-oder Datenbank Know-how. Deshalb fragte ich nach.

    Wenns viel viel mehr Datensätze sind brauchts auch ne andere Lösung, aber dann wärst Du wahrscheinlich nicht hier. Aber das Streben nach Perfektion fordert entsprechend hohe Investitionen. Aber das brauch ich dir nicht sagen.


    Wenn Du VBA erlernen möchtest, hätte Ich folgende Links für Dich:

    Visual Basic für Applikationen - Das VBA-Tutorial
    VBA Articles - Excel Macro Mastery
    https://www.youtube.com/user/WiseOwlTutorials

    Wenn Du direkt ins Thema Listboxen einsteigen möchtest, dann hier:


    Wenn Ich helfen konnte, freut mich, falls nicht, wird sich sicherlich jemand melden.

    Ach ja, Du bist gut beraten, Rückfragen zieldienlich zu beantworten. Ein Demofile wirkt manchmal wunder. Kann vermeintlich große Dinge manchmal ganz klein aussehen lassen.
     
  11. Hallo,

    das ist der Code, wie geschrieben runtergeladen bei online-vba gefunden. Tutorialuserform_2, da der ganz gut auf meine Bedürfnisse passt.


    Option Explicit
    Option Compare Text
    ' ******************************************************************************** ****************
    ' Autor/en: www.Online-VBA.de - Alles rund um die VBA Programmierung... - Marc Wershoven
    ' Verwendung der Quelltexte auf eigene Gefahr!
    ' Es gelten die Nutzungsbedingungen von www.online-vba.de!
    ' Original-Quelltext: www.online-vba.de/vba_tutorialuserform2.php
    ' ******************************************************************************** ****************

    ' ******************************************************************************** ****************
    ' KONSTANTEN / PARAMETRISIERUNG
    ' ******************************************************************************** ****************

    'Wie viele TextBoxen sind auf der UserForm platziert?
    Private Const iCONST_ANZAHL_EINGABEFELDER As Integer = 6

    'In welcher Zeile starten die Eingaben?
    Private Const lCONST_STARTZEILENNUMMER_DER_TABELLE As Long = 5


    ' ******************************************************************************** ****************
    ' EREIGNISROUTINEN DER USERFORM
    ' ******************************************************************************** ****************

    'Neuer Eintrag Schaltfläche Ereignisroutine
    Private Sub CommandButton1_Click()
    Call EINTRAG_ANLEGEN 'Aufruf der entsprechenden Verarbeitungsroutine
    End Sub

    'Löschen Schaltfläche Ereignisroutine
    Private Sub CommandButton2_Click()
    Call EINTRAG_LOESCHEN 'Aufruf der entsprechenden Verarbeitungsroutine
    End Sub

    'Speichern Schaltfläche Ereignisroutine
    Private Sub CommandButton3_Click()
    Call EINTRAG_SPEICHERN 'Aufruf der entsprechenden Verarbeitungsroutine
    End Sub

    'Beenden Schaltfläche Ereignisroutine
    Private Sub CommandButton4_Click()
    Unload Me
    End Sub

    'Klick auf die ListBox Ereignisroutine
    Private Sub ListBox1_Click()
    Call EINTRAG_LADEN_UND_ANZEIGEN 'Aufruf der entsprechenden Verarbeitungsroutine
    End Sub

    'Diese Ereignisroutine wird beim Anzeigen der UserForm ausgeführt
    Private Sub UserForm_Activate()
    If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 '1. Eintrag selektieren
    End Sub

    'Startroutine, wird ausgeführt bevor die Eingabemaske angezeigt wird
    Private Sub UserForm_Initialize()
    Call LISTE_LADEN_UND_INITIALISIEREN 'Aufruf der entsprechenden Verarbeitungsroutine
    End Sub


    ' ******************************************************************************** ****************
    ' VERARBEITUNGSROUTINEN
    ' ******************************************************************************** ****************

    'Diese Routine wird aufgerufen um die Liste (ListBox1) zu leeren, einzustellen und neu zu füllen
    Private Sub LISTE_LADEN_UND_INITIALISIEREN()
    Dim lZeile As Long
    Dim lZeileMaximum As Long
    Dim i As Integer

    'Alle TextBoxen leer machen
    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
    Me.Controls("TextBox" & i) = ""
    Next i

    ListBox1.Clear 'Liste leeren

    '4 Spalten einrichten
    'Spalte 1: Zeilennummer des Datensatzes
    'Spalte 2: Name (Spalte A)
    'Spalte 3: Firma (Spalte B)
    'Spalte 4: Telefon (Spalte C)
    'Spalte 5: E-Mail (Spalte D)
    ListBox1.ColumnCount = 5

    'Spaltenbreiten der Liste anpassen (0=ausblenden, nichts=automatisch)
    '";;;"
    ListBox1.ColumnWidths = "0;;;;"
    'Feste Breiten: ListBox1.ColumnWidths = "0;100;100;100"

    'Um eine Schleife für alle Datensätze zu erhalten benötigen wir die letzte verwendete Zeile
    lZeileMaximum = Tabelle1.UsedRange.Rows.Count 'Benutzer Bereich auslesen

    For lZeile = lCONST_STARTZEILENNUMMER_DER_TABELLE To lZeileMaximum

    'Nur wenn die Zeile benutzt / nicht leer ist, zeigen wir etwas an:
    If IST_ZEILE_LEER(lZeile) = False Then

    'Spalte 1 der Liste mit der Zeilennummer füllen
    ListBox1.AddItem lZeile

    'Spalten 2 bis 4 der Liste füllen
    ListBox1.List(ListBox1.ListCount - 1, 1) = CStr(Tabelle1.Cells(lZeile, 1).Text)
    ListBox1.List(ListBox1.ListCount - 1, 2) = CStr(Tabelle1.Cells(lZeile, 2).Text)
    ListBox1.List(ListBox1.ListCount - 1, 3) = CStr(Tabelle1.Cells(lZeile, 3).Text)
    ListBox1.List(ListBox1.ListCount - 1, 4) = CStr(Tabelle1.Cells(lZeile, 4).Text)

    End If

    Next lZeile

    End Sub

    Private Sub EINTRAG_LADEN_UND_ANZEIGEN()
    Dim lZeile As Long
    Dim i As Integer

    'Eingabefelder resetten
    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
    Me.Controls("TextBox" & i) = ""
    Next i

    'Nur wenn ein Eintrag selektiert/markiert ist
    If ListBox1.ListIndex >= 0 Then

    'Die Zeilennummer des Datensatzes steht in der ersten ausgeblendeten Spalte der Liste,
    'somit können wir direkt zugreifen.
    lZeile = ListBox1.List(ListBox1.ListIndex, 0)

    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
    Me.Controls("TextBox" & i) = CStr(Tabelle1.Cells(lZeile, i).Text)
    Next i

    End If

    End Sub

    Private Sub EINTRAG_SPEICHERN()
    Dim lZeile As Long
    Dim i As Integer

    'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
    If ListBox1.ListIndex = -1 Then Exit Sub

    'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
    lZeile = ListBox1.List(ListBox1.ListIndex, 0)

    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
    Tabelle1.Cells(lZeile, i) = Me.Controls("TextBox" & i)
    Next i

    'Der Benutzer könnte die angezeigten Werte in der Liste geändert haben,
    'daher aktualisieren wir den ausgewählten Eintrag entsprechend.
    ListBox1.List(ListBox1.ListIndex, 1) = TextBox1
    ListBox1.List(ListBox1.ListIndex, 2) = TextBox2
    ListBox1.List(ListBox1.ListIndex, 3) = TextBox3
    ListBox1.List(ListBox1.ListIndex, 4) = TextBox4

    End Sub

    Private Sub EINTRAG_LOESCHEN()
    Dim lZeile As Long

    'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
    If ListBox1.ListIndex = -1 Then Exit Sub

    'Beim Löschen fragen wir zuerst den Benutzer noch einmal sicherheitshalber:
    If MsgBox("Sie möchten den markierten Datensatz wirklich löschen?", _
    vbQuestion + vbYesNo, "Sicherheitsabfrage!") = vbYes Then

    'Nur wenn er mit antwortet, löschen wir auch!

    'Zum Löschen benötigen wir die Zeilennummer des ausgewählten Datensatzes
    lZeile = ListBox1.List(ListBox1.ListIndex, 0)

    'Die ganze Zeile wird nun gelöscht
    Tabelle1.Rows(CStr(lZeile & ":" & lZeile)).Delete

    'Und den Eintrag in der Liste müssen wir auch noch entfernen
    ListBox1.RemoveItem ListBox1.ListIndex

    End If

    End Sub

    Private Sub EINTRAG_ANLEGEN()
    Dim lZeile As Long

    lZeile = lCONST_STARTZEILENNUMMER_DER_TABELLE
    'Schleife bis eine leere ungebrauchte Zeile gefunden wird
    Do While IST_ZEILE_LEER(lZeile) = False
    lZeile = lZeile + 1 'Nächste Zeile bearbeiten
    Loop

    'Nach Durchlauf dieser Schleife steht lZeile in der ersten leeren Zeile von Tabelle1
    Tabelle1.Cells(lZeile, 1) = CStr("Neuer Eintrag Zeile " & lZeile)

    'Und neuen Eintrag in die UserForm eintragen
    ListBox1.AddItem lZeile
    ListBox1.List(ListBox1.ListCount - 1, 1) = CStr("Neuer Eintrag Zeile " & lZeile)
    ListBox1.List(ListBox1.ListCount - 1, 2) = ""
    ListBox1.List(ListBox1.ListCount - 1, 3) = ""
    ListBox1.List(ListBox1.ListCount - 1, 4) = ""

    'Den neuen Eintrag markieren mit Hilfe des ListIndex
    ListBox1.ListIndex = ListBox1.ListCount - 1
    'Durch das Click Ereignis der ListBox werden die Daten automatisch geladen

    'Und dem Benutzer direkt noch den Cursor in das erste Eingabefeld stellen und alles vorselektieren,
    'so kann der Benutzer direkt loslegen mit der Dateneingabe.
    TextBox1.SetFocus
    TextBox1.SelStart = 0
    TextBox1.SelLength = Len(TextBox1)

    End Sub


    ' ******************************************************************************** ****************
    ' HILFSFUNKTIONEN
    ' ******************************************************************************** ****************

    'Ermittelt, ob eine Zeile in Benutzung ist...
    Private Function IST_ZEILE_LEER(ByVal lZeile As Long) As Boolean
    Dim i As Long
    Dim sTemp As String

    'Hilfsvariable initialisieren
    sTemp = ""

    'Um zu erkennen, ob eine Zeile komplett leer/ungebraucht ist
    'verketten wir einfach alle Spalteninhalte der Zeile miteinander.
    'Ist die zusammengesetzte Zeichenkette aller Spalten leer,
    'ist die Zeile nicht genutzt...
    For i = 1 To iCONST_ANZAHL_EINGABEFELDER
    sTemp = sTemp & Trim(CStr(Tabelle1.Cells(lZeile, i).Text))
    Next i

    'Rückgabewert festlegen
    If Trim(sTemp) = "" Then
    'Die Zeile ist leer
    IST_ZEILE_LEER = True
    Else
    'Die Zeile ist mindestens in einer Spalte gefüllt
    IST_ZEILE_LEER = False
    End If

    End Function



    Nun habe ich einen Button um meine Info's einzufügen. Mein Wunsch, ein zweiter Button wo mir nur die Kunden anzeigt, ich einen in der Listbox anwähle (wird blau hinterlegt) und beim drücken von anzeigen schaltet es mir auf Tabellenblatt Nr 2 rüber und zeigt mir nur von dem Kunden erhaltene Angebote und angefragte Anfragen. Dies kann auch ein bisschen anders gelöst werden, bspw. farblich absetzen damit man das gleich sieht gegenüber anderem.

    Ich habe in der Userform2 für meinen Wunsch mit dem 2. Button und Listbox ein bisschen etwas abgeändert so das es besser funzt. Aber den Endschliff bekomme ich nicht hin.

    Ich glaube es sind viele Datensätze und das KMU könnte nicht ausreichen, wenn du das schon erwähnst. Müsste mich damit dann auch noch auseinander setzen.

    Vielen Dank erstmal, hoffe ihr könnt damit was anfangen.
     
    WenigClever, 13. Januar 2021
    #11
  12. Hallo,

    ich habe es geschafft um vom Tab-Blatt 1 zu Tab-Blatt 2 zu wechseln.


    ' ******************************************************************************** ****************
    'Springe zu Anfrage und Angebot
    ' ******************************************************************************** ****************
    Private Sub CommandButton100_Click()

    CommandButton100.TakeFocusOnClick = False
    Sheets("Anfragen & Angebote").Select
    Range("A5").Select

    End Sub


    Jetzt möchte ich nur noch in meiner Liste (in der Listbox) den gewünschten Kunden auswählen und auf Tab-Blatt 2 soll dieser gezeigt werden - entweder nur den Kunden mit mehreren Zeilen oder farblich hervorgehoben, oder die anderen ausblenden.
     
    WenigClever, 13. Januar 2021
    #12
  13. 2 Tabellenblätter

    Hallo,

    wie könnte ein VBA-Code lauten für folgendes:


    Tabelle1: in A5 erste Kunde (ab B5 dann Kundendaten)

    Tabelle2: ebenfalls in A5 erster Kunde (ab B5 Anfragethemen etc...)


    Nun wenn ich meine zweite Userform anklicke, möchte ich in der Listbox (wo die Kunden aufgelistet sind) einen Kunden aussuchen (wird blau markiert in Listbox) und dann nach dem Button-drücken wird mir in Tabelle2 nur der Kunde angezeigt mit dazugehörigen Info's (siehe Tabelle2: ab B5 Anfragethemen etc...)


    Zudem habe ich in der Userform 6 Eingabefelder (Textboxen) die ich auf dem Tabellenblatt 2 befüllen möchte.

    Hat jemand eine einfache Lösung? Stehe gerade auf dem Schlauch.

    Danke
     
    WenigClever, 13. Januar 2021
    #13
Thema:

2 Tabellenblätter

Die Seite wird geladen...
  1. 2 Tabellenblätter - Similar Threads - Tabellenblätter

  2. Arbeitszeiten aus mehreren Tabellenblätter

    in Microsoft Excel Hilfe
    Arbeitszeiten aus mehreren Tabellenblätter: Moin Excel Profis, ich habe eine Tabelle wo ich aus ca. 20 Blätter die Arbeitszeit pro Fahrer brauche. Im Blatt gesamt steht in Spalte G der Fahrer. Dann gibt es Blätter die z.B. vom 01.05.2025...
  3. Excel Tabellenblatt als PDF speichern unter Vorgabe Dateinamen aus einer Zelle

    in Microsoft Excel Hilfe
    Excel Tabellenblatt als PDF speichern unter Vorgabe Dateinamen aus einer Zelle: Hallo zusammen, ich möchte eine VBA Programmierung machen wie folgt. Das aktuelle Excel-Tabellenblatt soll als PDF Speicher unter, unter Vorgabe des Dateinamens der in Zelle A1 steht gespeichert...
  4. Textblock/Zellbereich aus Tabellenblatt in Worddokument übergeben

    in Microsoft Excel Hilfe
    Textblock/Zellbereich aus Tabellenblatt in Worddokument übergeben: Hallo zusammen, mit der folgenden Codezeile ist es zumindest möglich den Inhalt einer Zelle von Excel in einem Worddokument an einer bestimmten Textmarke einzufügen....
  5. Ein Tabellenblatt, dass in mehrfach verwendet wird aktuell halten

    in Microsoft Excel Hilfe
    Ein Tabellenblatt, dass in mehrfach verwendet wird aktuell halten: Hallo, ich habe auf der Arbeit einige Excel Tabellen für verschiedene Sachen. Da die meisten davon auf unseren Artikelbestand basieren, wird diese Artikelliste in mehreren...
  6. Daten in anderes Tabellenblatt übertragen

    in Microsoft Excel Hilfe
    Daten in anderes Tabellenblatt übertragen: Hallo, ich stelle mir folgendes vor: Ich trage in das Tabellenblatt 1 in die Felder A1 - A8 Werte ein. Diese Werte sollen dann in das Tabellenblatt 2 in die nächste freie Zeile übertragen werden....
  7. Über Verknüpfung Tabellenblatt aktivieren

    in Microsoft Excel Hilfe
    Über Verknüpfung Tabellenblatt aktivieren: Hallo! Ich habe ein Excel Dokument mit dem Namen "Rechner.xlsx" mit mehreren Tabellen z.B. Tabelle1, Tabelle2, Tabelle3, etc. Ist es möglich den Rechner.xlsx über eine Verknüpfung zu öffnen und...
  8. Werte in anderem Tabellenblatt einrechnen

    in Microsoft Excel Hilfe
    Werte in anderem Tabellenblatt einrechnen: Hallo ihr Lieben, ich hoffe es kann mir jemand helfen. Derzeit versuche ich eine Tabelle so einzustellen, dass Excel erkennt, wenn eine Zahl mit einem Plus oder Minus eingetragen wird, dieser Wert...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden