Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Auswahlliste - Wenn Dann ?????

Auswahlliste - Wenn Dann ?
23.05.2008 13:20:00
Daniela
Hallo Zusammen,
ich habe eine Frage. Ich soll eine Excel-Arbeitsmappe entwickeln, in welcher auf verschiedenen Tabellenblättern verschiedene Informationen stehen. Typenbezeichnungen und Nummerierungen, Lagerort etc (alles in verschiednen Spalten). Nun soll durch ein 'x' in der ersten Spalte eine ganze Zeile ausgewählt werden. Diese ausgewählten Zeilen sollen dann auf einem neuen Tabellenblatt "zusammengeschrieben" werden.
Ein bisschen so wie bei einem "Angebots-Konfigurator".
Habt Ihr mir eine Lösung wie ich mit dem Probelm umgehen kann.
Viele Grüße und ein schönes Wochenende
Eure Dani

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ich stelle mich mal dumm...
23.05.2008 13:57:11
Harald
... und tue so, als ob ich von VBA keien Ahnung hätte.
Auf dem "zusammenfassen"-Tabellenblatt würde ich in die Zellen der ersten Zeile etwa folgende Formel schreiben:
in A2: =wenn(Tabelle1!$A1=x;Tabelle1!A2;"")
in A3: =wenn(Tabelle1!$A1=x;Tabelle1!A3;"")
etc.
So viele Formeln, wie Du max. Spalten hast.
Dann die Formeln per Ziehkästchen nach unten kopieren, so oft, wie Du max. Zeilen hast.
Dann per Autofilter alle leeeren Zeilen ausblenden.
Nicht elegant, aber sollte funktionieren.
Gruß Harald

Beispiel : "Konfigurator" mit Namensliste
23.05.2008 14:16:00
NoNet
Hallo Dani,
anbei ein Beispiel, wie man diesen "Konfigurator" erstellen könnte (enthält 2 Varianten) :
https://www.herber.de/bbs/user/52577.xls
Variante 1 (Tabelle2) erfordert eine eindeutige Nummer (in Spalte A), da die anderen Daten per SVERWEIS() ermittelt werden. Hier musst Du die Funktion nur in A2 eingebenund nach unten kopierne und die funktion aus B2 nach unten und nach rechts kopieren.
Variante 2 (Tabelle3) : Alle Datenfelder werden per MATRIX-Funktionen ermittelt. Funktion nur in A2 eingeben und nach unten und nach rechts kopieren.
Beachte, dass beide Varianten nur Zeile 2 bis 1000 der "Tabelle1" berücksichtigen (das kannst Du in den Funktionen natürlich anpassen !)
HINWEIS : MATRIX-Funktionen werden immer ohne die MATRIX-Klammern { } eingegeben, dafür mit Strg+shift+ENTER bestätigt !
Gruß, NoNet

Anzeige
AW: Auswahlliste - Wenn Dann ?
23.05.2008 14:36:00
fcs
Hallo Dani,
hier noch eine Lösung per Makro.
Es können Daten aus beliebig vielen Tabellen in beliebiger Reihen folge zusammengestellt werden.
Zwischen den Daten im Sammelblatt und den Daten in den anderen Tabellen besteht nach dem Kopiervorgang keine Verbindung mehr.
https://www.herber.de/bbs/user/52579.xls
Gruß
Franz

AW: Auswahlliste - Wenn Dann ?
26.05.2008 11:30:00
Daniela
Hallo Franz,
ich hab deine Datei geöffnet und gespreichert. Irgendwie bin ich aber nicht in der Lage das Mako auszuführen. Sorry, aber ich verstehe nicht was ich da falsch mache. Vielleicht kannst Du mir nochmal helfen. Vielen Dank.
Liebe Grüße Dani

Anzeige
AW: Auswahlliste - Wenn Dann ?
26.05.2008 11:38:50
Renee
Hi Daniela,
Das Makro kannst du nicht 'manuell' ausführen. Da es sich um eine sog. Ereignisprozedur handelt, findest du nichts in der Makroliste. Die Ereignisprozedur (hier in: DieserArbeitsmappe Workbook_SheetChange) wird automatisch ausgeführt, wenn du in den Arbeitsblättern, die nicht "Sammler" heissen den Buchstaben x in der Spalte 1 einträgst.
Sollte bei einer solchen Aktion die Zeile nicht in das Blatt "Sammler" übertragen werden, musst du die Sicherheitsstufe deiner Makros niedriger stellen.
GreetZ Renée

AW: Auswahlliste - Wenn Dann ?
26.05.2008 11:55:43
Daniela
Hallo Renée,
vielen Dank für Deine schnelle Antwort. Das Funktioniert jetz auch. Mal schauen wie ich das hinbekomme weitere Spalten zu integrieren, die Tabellenblätter umzubenennen und zusätzliche Tabellenblätter einfügen. Ich lerne ja noch §;-)
Nochmal ganz lieben Dank, wenn ich nochmal Hilfe brauch melde ich mich.
Grüße aus München Dani

Anzeige
AW: Auswahlliste - Wenn Dann ?
27.05.2008 15:34:00
daniela
Hallo Zusammen,
das Makro ist ech super. Kann mir noch jemand helfen, wie ich es schaffe, dass ich wärend der Eingabe (z.B. ich hab mich vertippt) ein "x" wieder löschen kann ohne das es auf dem "Sammler" landet? Und dann noch die Frage, wie kann ich ein "Alles löschen" programmieren? Ich denke, dass ich zur Not ein Makro "Aufzeichnen" kann, welches alle x/S und Sammler - Einträge löscht. Aber gibt es eine elegantere Lösung?
Vielen Dank schon im Voraus für Eure Hilfe
Grüße Dani

AW: Auswahlliste - Wenn Dann ?
27.05.2008 17:33:07
fcs
Hallo Dani,
das zurücksetzen der Blätter kannst du mit folgendem Makro machen. Dieses gehört in ein allgemeines Modul.

Sub RestSammler()
Dim objWks As Worksheet, lngZeile As Long
For Each objWks In ActiveWorkbook.Worksheets
With objWks
Select Case .Name
Case "Sammler"
'Eingetragenen Zeilen im Sammler löschen
lngZeile = 8 ' Letzte Zeile mit Spaltentitel (unterhalb davon wird gelöscht)
If .Cells(.Rows.Count, 1).End(xlUp).Row > lngZeile Then
.Range(.Rows(lngZeile + 1), _
.Rows(.Cells(.Rows.Count, 1).End(xlUp).Row)).ClearContents
End If
Case "TabelleXYZ", "TabelleZYX" 'Ausnahmeblätter falls erforderlich
'do nothing
Case Else
'Einträge in Spalte 1 (A) löschen
lngZeile = 1 ' Letzte Zeile der Spaltentitel (unterhalb wird angekreuzt)
If .Cells(.Rows.Count, 1).End(xlUp).Row > lngZeile Then
.Range(.Cells(lngZeile + 1, 1), .Cells(.Rows.Count, 1).End(xlUp)).ClearContents
End If
End Select
End With
Next
End Sub


Die letzte(n) Eingabe(n) kannst du löschen mit folgender Ergänzung (ElseIf-Abschnitt) in dem Makro dass du schon hast. In die Zelle mit S-Eintrag gibst du ein l oder L ein. Dann wird jeweils die letzte Zeile im Sammler gelöscht.


'Zellen mit x-Eintrag abarbeiten
For Each objZelle In Target
If LCase(objZelle.Value) = "x" Then
.Cells(lngZeile, 2).Range("A1:E1").Value = _
Target.Offset(0, 1).Range("A1:E1").Value
If .Cells(lngZeile - 1, 1).Value = "Nr." Then
.Cells(lngZeile, 1).Value = 1
Else
.Cells(lngZeile, 1).Value = .Cells(lngZeile - 1, 1).Value + 1
End If
ElseIf LCase(objZelle.Value) = "l" Then 'Eingabe l oder L
'Letzte Zeile(n) wieder löschen
If lngZeile - 1 > 8 Then '8 = Nummer der letzten Titelzeile im Sammelblatt
.Rows(lngZeile - 1).ClearContents
objZelle.ClearContents
Else
MsgBox "Im Sammelblatt sind alle Zeilen gelöscht"
objZelle.ClearContents
End If
End If
If Not IsEmpty(objZelle) Then
objZelle.Value = "S" 'x-durch S ersetzen
End If
Next


Alternativ könnte man natürlich auch erst in allen Tabellen die Zeilen mit x markieren und dann in einem Rutsch alle Einträge in den Sammler übertragen.
Gruß
Franz

Anzeige
AW: Auswahlliste - Wenn Dann ?
27.05.2008 18:42:46
daniela
Hallo Franz,
vielen, vielen, vielen Dank. Du bist echt ein Retter in der Not.
Ich hab mir gerade bei Amazon 2 Bücher bestellt. Hoffentlich kann ich in Zukunft solche Dinge auch selber programmieren.
Viele Grüße Dani

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige