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. commandbutton fließend auf dem Tabellenblatt einrichten

    in Microsoft Excel Hilfe
    commandbutton fließend auf dem Tabellenblatt einrichten: Hallo zusammen. Habe mal eine wahrscheinlich einfachen Frage. Ich richte einen CommandButton auf einem Tabellenblatt in EXCEL ein. Nun möchte ich, dass dieser Button immer in der gleichen Position...
  3. Tabellenblatt in neue Mappe kopieren

    in Microsoft Excel Hilfe
    Tabellenblatt in neue Mappe kopieren: Hallo zusammen, ich hoffe, jemand kann mir weiterhelfen. Das Vorhaben: Nach Befüllen einer Excel-Tabelle soll ein Blatt daraus in eine eigenständige Mappe kopiert werden und alle Verknüpfungen...
  4. Beträge in anderem Tabellenblatt anzeigen lassen mit Bezug auf einen Monat und ohne Leerzellen

    in Microsoft Excel Hilfe
    Beträge in anderem Tabellenblatt anzeigen lassen mit Bezug auf einen Monat und ohne Leerzellen: Hello, nun habe ich noch ein kleines Problem... ich habe es schon mal versucht, aber komme nicht zum richtigen Ergebnis... Jetzt soll ein Betrag in einem anderen Tabellenblatt angezeigt...
  5. Daten aus einem Tabellenblatt in ein anderes kopieren ohne Leerzellen anzuzeigen

    in Microsoft Excel Hilfe
    Daten aus einem Tabellenblatt in ein anderes kopieren ohne Leerzellen anzuzeigen: Hallo zusammen, ich habe folgendes Problem. Ich würde gerne in einem Tabellenblatt, bestimmte Daten aus einem anderen Tabellenblatt automatisch anzeigen lassen. Tabellenblatt 1 = Grundlage...
  6. Formel für Auswahlmöglichkeiten im Tabellenblatt

    in Microsoft Excel Hilfe
    Formel für Auswahlmöglichkeiten im Tabellenblatt: Hallo liebe Community, ich hoffe, dass ich die Herausforderung richtig erkläre :-) Ich benötige eine Formel, die mir Daten ausspuckt, wenn in einer anderen Zelle ein bestimmter Wert ausgewählt...
  7. Zeile per Klick farblich machen auch für weitere Tabellenblätter möglich?

    in Microsoft Excel Hilfe
    Zeile per Klick farblich machen auch für weitere Tabellenblätter möglich?: Hallo. Ich habe mehrere Tabellenblätter. Das 1. Blatt ist Bedingt formatiert mit: =ZEILE()=ZELLE("Zeile") dazu die Farbe grün und dem VBA Code: Target.Calculate (Datei ist im Anhang) Wenn ich...
  8. Verweis oder dynamischer Tabellenname erstellen

    in Microsoft Excel Hilfe
    Verweis oder dynamischer Tabellenname erstellen: Hallo liebe Wissensgemeinde, ich habe ein eigentlich sehr simples Problem. Meine Excel-Datei "Wunschdienstplan" besteht aus 2 Arbeitsblättern. Im Arbeitsblatt1 werden mittels Dropdown-Feld die...
  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