Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro? sverweis? andere Möglichkeit?

Makro? sverweis? andere Möglichkeit?
08.06.2004 11:35:57
Matthias
Hallo Zusammen
Mein kleines Problem liegt darin: Ich habe eine lange unsortierte Liste (die darf NICHT sortiert werden!). In dieser Liste kommen immer wieder Namen vor (Beispiel SUSI) und eine Zahl dahinter (Beispiel 11 usw). Nun möchte ich gerne in einer seperaten Spalte oder auch Tabelle alle "Susis mit Betrag" ausgeben. Also wie wenn Excel nach allen Zeilen die Susi enthält suchen und dann den Inhalt dieser Zellen untereinander in eine seperate Tabelle (oder Ecxel Blatt) reinkopieren müsste.
Hat da Jemand eine Ahnung?
Wär genial !!! Merci schon jetzt.

BEISPIELDATEI:
https://www.herber.de/bbs/user/7207.xls

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

Betreff
Datum
Anwender
Anzeige
AW: Makro? sverweis? andere Möglichkeit?
08.06.2004 12:05:46
Mac4
Hallo Matthias,
am schnellsten geht wohl ein Makro. Kopier folgenden Code in das Tabellenmodul Deiner Tabelle1:

Sub test()
Dim zl, i, n
n = 0
For i = 1 To [A65365].End(xlUp).Row
If Cells(i, 1) = "Susi" Then
n = n + 1
Range(Cells(i, 1), Cells(i, 2)).Copy Destination:=Sheets("Tabelle2").Cells(n, 1)
End If
Next
End Sub

Formeltechnisch ist das mit einer Matrixformel auch möglich - bei großen Listen leidet da allerdings die Performance drunter!
Marc
Marc, noch eine Frage ......
08.06.2004 13:17:17
Matthias
Wie müsste ich dein Script anpassen wenn ich nebst Susi auch noch Stephan suchen würde? und susi in der Tabelle2 ab Zelle B2 stehen müsste und stephan ab Zelle E4 ? :)
Merci für deine Bemühungen! Ist echt cool ...
Anzeige
AW: Marc, noch eine Frage ......
08.06.2004 13:25:02
Mac4
Hi Matthias,
so müsste es gehen:

Sub test()
Dim i, b, e
b = 1
e = 3
For i = 1 To [A65365].End(xlUp).Row
If Cells(i, 1) = "Susi" Then
b = b + 1
Range(Cells(i, 1), Cells(i, 2)).Copy Destination:=Sheets("Tabelle2").Cells(b, 2)
Else
If Cells(i, 1) = "Stephan" Then
e = e + 1
Range(Cells(i, 1), Cells(i, 2)).Copy Destination:=Sheets("Tabelle2").Cells(e, 5)
End If
End If
Next
End Sub

Marc
AW: Marc, noch eine Frage ......
11.06.2004 11:25:04
Matthias
Meine Kenntnisse lassen leider wirklich zu wünschen zu übrigen. Ich kanns versuchen so lange ich will, ich krieg das Script nicht angepasst. Was muss ich tun (welchen Codeteil muss ich ändern) wenn ich die Zellen/Spalten ändern möchte? Also wenn die Namen in einer anderen Spalte stehen und die Ergebnisse in andere Zellen geschrieben werden sollen? Ich habe bald fast alle Möglichkeiten ausprobiert. Es war nur die richtige noch nicht dabei :-(
Anzeige
AW: Marc, noch eine Frage ......
11.06.2004 17:13:09
andre
Hallo Matthias,
cells(zeile,spalte)
und dann natürlich schauen, was die variablen tun ... i, e, b
AW: Marc, noch eine Frage ......
11.06.2004 20:14:35
Matthias
Hi Andre
Nun, das ist vielleicht eine perfekte Antwort für Jemanden der's im Excel checkt. Tja, dem ist bei mir (noch) nicht der Fall :-/
Gruss
AW: Marc, noch eine Frage ......
11.06.2004 20:26:37
Reinhard
Hi Matthias,
Andre hat dir ja die Syntax von Cells verraten, damit du den Code auf deine Wünsche anpassen kannst.
Wenn i=7 ist und e=12 dann kopiert die Zeile
Range(Cells(i, 1), Cells(i, 2)).Copy Destination:=Sheets("Tabelle2").Cells(e, 5)
aus dem aktiven Blatt Range("A7:B7") nach Tabelle2 in das Range("E12") [bzw E12:F12]
was in Excel dem enstpricht:
A7:B7 markieren, Strg+C, in Tabelle2 E12 markieren, Strg+V
Mit dem Wissen, dass Cells die Syntax Cells(ZEILE,SPALTE) hat, kannst du dir den Code "umstricken".
Es ist nur gewöhnungsbedürftigt, Zelle E28 als Cells(28,5) zu sehen, nicht schwierig.
Gruß
Rein
hard
Anzeige
Makro - Treffer ausfiltern
08.06.2004 12:06:16
Beate Schmitz
Hallo Matthias,
Lösungsvorschlag auf Makroebene unter:
https://www.herber.de/bbs/user/7211.xls
Das Makro gehört ins Codefenster der Tabelle:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim z As Range, lz As Long, i As Long, ze As Long
Dim Such As String, l As Long
If Target.Address <> "$A$1" Then Exit Sub
Application.Goto Reference:="Löschbereich"
Selection.ClearContents
Such = UCase(Target.Value)
l = Len(Such)
If l = 0 Then Exit Sub 'Abbruch bei leerer Zelle
lz = Sheets("Tabelle1").Range("A60000").End(xlUp).Row
ze = 3
For i = 1 To lz
If UCase(Left(Sheets("Tabelle1").Cells(i, 1).Value, l)) = Such Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Cells(ze, 1) = Sheets("Tabelle1").Cells(i, 1).Value
Cells(ze, 2) = Sheets("Tabelle1").Cells(i, 2).Value
ze = ze + 1
End If
Next i
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Range("A1").Select
End Sub


Spezialfilter wäre auch eine gute Möglichkeit.
Gruß,
Beate
Anzeige
Ihr seid die Besten!! Merci vielviel mal!!!
08.06.2004 13:10:17
Matthias
hat bestens geklappt :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige