Hilfe bei Excel Makro

Dieses Thema Hilfe bei Excel Makro im Forum "Windows XP Forum" wurde erstellt von gustel123, 15. März 2005.

Thema: Hilfe bei Excel Makro Hallo @all, folgendes Excel Problem: Gegeben: Tabellenblatt1 : Verbrauchte_Artikel Artikel Menge...

  1. Hallo @all,
    folgendes Excel Problem:

    Gegeben:

    Tabellenblatt1 : Verbrauchte_Artikel
    [table]
    [tr]
    [td]Artikel[/td]
    [td]Menge[/td]
    [/tr]
    [tr]
    [td]Schraube[/td]
    [td]2[/td]
    [/tr]
    [tr]
    [td]Naegel[/td]
    [td]0[/td]
    [/tr]
    [/table]

    Tabellenblatt2 : Anforderung
    [table]
    [tr]
    [td]Artikel[/td]
    [td]Menge[/td]
    [/tr]
    [tr]
    [td]Schraube[/td]
    [td]2[/td]
    [/tr]
    [/table]

    Vorhaben:
    Ich will beide Tabellenblätter so verknüpfen, dass sobald eine Artikel verbraucht wird (Menge>0)
    in der Anforderung-Tabelle ein Eintrag mit Artikel und Menge des Verbrauchten Artikel erscheint.
    Im endefekt sollen nur die Artikel die Tatsächlich verbraucht worden sind auch Bestellt werden!

    Im ersten Versuch habe ich die Komplette Tabelle 1zu1 verknüpft und dann
    versucht über ein Makro alle Zeilen der 2. Tabelle auszublenden, in denen Menge=0 ist. ::)
    hat leider auch nicht 100%ig gefunzt .....

    Vieleicht hat jemand eine Idee, kann ich bestimmt auch irgendwie ohne Makro´s machen, bin leider nicht so ein Excel-Guru!

    Danke schon mal vorab!

    Gruss aus Frankfurt,
    Gustel
     
  2. Hallo Gustel,

    ich hab dir mal eine Lösung mit Makros zusammengestellt.

    Die Arbeitsmappe ist folgendermassen aufgebaut:

    1.Blatt:
    Name: Verbrauchte_Artikel
    Überschrift->Artikel' in A1
    A2 und folgende -> Artikelbezeichnung
    Überschrift->Menge' in B1

    2. Blatt:
    Name: Anforderung
    in A1 Formel:
    Code:
    =Verbrauchte_Artikel!A1
    Formel soweit oder weiter ziehen, bis Du alle Artikel auf dem 2.Blatt siehst.
    in B1 Formel:
    Code:
    =Verbrauchte_Artikel!B1
    Formel wie in Spalte A herunterziehen

    So jetzt kommen die Makros:
    1) VB-Ediotr öffnen mit Alt+F11
    Links siehst Du ein Fenster mit der Überschrift Projekt-VBA-Project.
    In diesem Fenster ist die Arbeitsmappe unter dem Namen VBAProject(MappenName) zu finden.

    2) VBA-Modul anlegen mit
    2a) VBAProject(MappenName) mit der Maus selektieren
    2b) rechte Maustaste -> Einfügen -> Modul
    in der Mitte geht das Code-Fenster MappenName-Modul1(Code) auf
    2c) den folgenden Code per copy und Paste in dieses Fenster hineinkopieren
    Code:
     ->1. Zeile mit Werten auf->Verbrauchte_Artikel'
      Global Const c_ErsteWerteZeile = 2
     ->Spaltendefinition
      Global Const c_SP_Artikel = 1
      Global Const c_SP_Menge = 2
     ->Tabellennamen
      Global Const c_Name_Verbrauchte_Artikel = Verbrauchte_Artikel
      Global Const c_Name_Anforderung = Anforderung
    
    3) den Makro anlegen, der beim Öffnen der Arbeitsmappe
    auf dem Blatt->Anforderung' die Zeilen  mit dem Wert 0 versteckt
    3a) Doppelklick im Projekt-Fenster auf DieseArbeitsmappe
    in der Mitte geht das Code-Fenster DieseArbeitsmappe(Code) auf
    3b) den folgenden Code per copy und Paste in dieses Fenster hineinkopieren
    Code:
    Private Sub Workbook_Open()
      
      Dim x As Long, l_ZeileMax As Long, ws1 As Worksheet, ws2 As Worksheet
      
      On Error GoTo AufWiedersehen
      Set ws1 = Worksheets(c_Name_Verbrauchte_Artikel)
      Set ws2 = Worksheets(c_Name_Anforderung)
      
     ->letzte Zeile mit Artikel auf->Verbrauchte_Artikel' feststellen
      l_ZeileMax = ws1.Cells(ws1.Rows.Count, c_SP_Artikel).End(xlUp).Row
      
     ->für alle Zeilen auf->Verbrauchte_Artikel' Wert->Menge'prüfen
      For x = c_ErsteWerteZeile To l_ZeileMax
       ->eine Zelle der Spalte 2 ?
        If ws1.Cells(x, c_SP_Menge) = 0 Then
          ws2.Rows(x).Hidden = True
        Else
          ws2.Rows(x).Hidden = False
        End If
      Next
    AufWiedersehen:
      Set ws1 = Nothing: Set ws2 = Nothing
    End Sub
    4) den Makro anlegen, der beim Ändern der Mengenangabe
    im Blatt->Verbrauchte_Artikel' auf dem Blatt->Anforderung'
    die korrespondierende Zeile  entsprechend dem Wert
    ein- oder ausblendet
    4a) Doppelklick im Projekt-Fenster auf Tabelle1(Verbrauchte_Artikel)
    in der Mitte geht das Code-Fenster Tabelle1(Code) auf
    4b) den folgenden Code per copy und Paste in dieses Fenster hineinkopieren
    Code:
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
      
      Dim Zelle As Range, l_row As Long
      
      On Error GoTo UndTschuess
      
     ->für alle geänderten Zellen
      For Each Zelle In Target
       ->eine Zelle der Spalte 2 ?
        If Zelle.Column = 2 Then
         ->Zeilennummer feststellen
          l_row = Zelle.Row
         ->Zeile auf dem Blatt->Anforderung' ein-/ausblenden
          If Zelle.Value > 0 Then
            Worksheets(c_Name_Anforderung).Rows(l_row).Hidden = False
          Else
            Worksheets(c_Name_Anforderung).Rows(l_row).Hidden = True
          End If
        End If
      Next
    UndTschuess:
    End Sub

    5) VB-Editor schliessen mit Alt+Q
    6) Excel-Datei speichern und ausprobieren


    Gruß Matjes :)
     
  3. Hallo Matjes,

    hat super funktioniert !

    thx
     
Die Seite wird geladen...

Hilfe bei Excel Makro - Ähnliche Themen

Forum Datum
Excel-Aufgabe - Bitte um Hilfe! Microsoft Office Suite 1. Sep. 2012
Excel 2010 - Pivot Tabelle - Brauche Hilfe bei Mittelwertbildung Microsoft Office Suite 13. Feb. 2012
Excel 2007 - Brauche Hilfe bei Erstellung von Formel Microsoft Office Suite 10. Dez. 2010
Excel Experte gescucht - Brauche Hilfe bei Tabelle erstellen Windows XP Forum 12. Nov. 2010
Re: Excel - Hilfe bei Datenstruktur für spätere UserForm Windows XP Forum 6. Aug. 2010