Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
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
Inhaltsverzeichnis

Wert suchen, alle Ergebnisse in eine Variable

Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 15:51:15
Sandra
Hallo Gemeinde
Für mein Projekt benötige ich eure Hilfe, da ich leider nichts passendes finden kann.
Mein Tabellenblatt sieht wie folgt aus:
A1: Maier B1:maier@mueller.de C1: Angestellter
A2: Hugo B2:Hugo@mueler.de C2: Angestellter
A3: Doris B3:doris@mueller.de C3: Chef
Usw
Ich möchte in einer Tabellespalte c1:c10 nach dem Wert zb. Angestellter suchen, der dort bis zu 8x mal unter anderen Werten vorkommen kann. Danach möchte ich, dass alle zum gefundenen es wert dazugehörigen E-Mails zu allen Angestellten fortlaufend in eine Variable geschrieben werden, die mit ; voneinander getrennt werden sollen. Am besten wäre noch, wenn ich das @mueller.de erst in der Variable hinzugefügt bekomme und somit in der Tabelle weglassen könnte.
Bekommt man sowas hin ? Vielen Dank euch allen..

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 15:55:27
Sandra
Danach möchte ich, dass alle zum gefundenen es wert dazugehörigen E-Mails zu allen Angestellten fortlaufend in eine Variable geschrieben werden, die mit ; voneinander getrennt werden sollen.
Schlechtes Deutsch: Danach möchte ich, dass alle E-Mails in Spalte b zum gefundenen Begriff, also alle E-Mail Anschriften der Angestellten, fortlaufend in eine variable geschrieben werden, die mit ; voneinander getrennt werden sollen. Hintergrund soll sein, dass man hinterher eine E-Mail an alle Angestellten verschicken kann.
AW: Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 16:44:15
Rudi
Hallo,
Sub Mailadressen()
Dim arrAdressen, rngC As Range, strSuch As String, strErg As String
strSuch = "Angestellter"
ReDim arrAdressen(1 To WorksheetFunction.CountIf(Columns(3), strSuch))
For Each rngC In Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))
If rngC = strSuch Then
strErg = strErg & rngC.Offset(, -1) & "@mueller.de" & ";"
End If
Next rngC
End Sub

Gruß
Rudi
Anzeige
AW: Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 21:17:59
Sandra
Das ist schon mal super. Kann man die Suche auch auf von einem anderen Tabellenblatt aus starten?
Also "For Each rngC In Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))" entsprechend auf ein anderes Blatt beziehen?
AW: Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 21:51:26
Werner
Hallo Sandra,
Rudi ist wohl nicht mehr online.
Sub Mailadressen()
Dim arrAdressen, rngC As Range, strSuch As String, strErg As String
strSuch = "Angestellter"
With Worksheets("DeinBlattname")
ReDim arrAdressen(1 To WorksheetFunction.CountIf(.Columns(3), strSuch))
For Each rngC In .Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp))
If rngC = strSuch Then
If strErg = "" Then
strErg = rngC.Offset(, -1) & "@mueller.de"
Else
strErg = strErg & ";" & rngC.Offset(, -1) & "@mueller.de"
End If
End If
Next rngC
End With
End Sub
Gruß Werner
Anzeige
AW: Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 22:02:38
Sandra
Danke Werner... Da kann ich dann weitermachen....Danke auch an Rudi.
Gerne u. Danke für die Rückmeldung. o.w.T.
22.11.2018 22:06:15
Werner
AW: Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 22:26:16
Sandra
Kannst du mir diese Schleife in ihren Einzelteilen kurz noch erklären ?
For Each rngC In .Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp))
was macht der da eigentlich? Insbesondere was ist das Cells(2,3) und das Rows.Count, 3
AW: Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 22:38:46
Werner
Hallo Sandra,
hier
.Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp))

wird ein Zellbereich festgelet.
Bei Cells(?, ?) gibt die erste Zahl die Zeilennummer und die zweite Zalt die Spaltennummer an
Cells(2, 3) = Zeile 2 Spalte 3 = C2
hier
.Cells(.Rows.Count, 3).End(xlUp)

wird die letzte belegte Zeile (.Rows.Count, 3) in Spalte 3, von unten nach oben (.End(xlup)) ermittelt.
Für deine Beispieldatei wäre das dann die Zeile 4
Der definierte Bereich ginge in diesem Beispiel dann also von
.Range(.Cells(2, 3) = C2 bis .cells(4 (durch .Rows.Count ermittelt), 3) = C4
festgelegter Beriech wäre somit C2:C4
Mit
For Each rngC In .Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp))
wird dieser festgelegte Bereich in einer Schleife von oben nach unten, also von C2 bis C4 durchlaufen.
Gruß Werner
Anzeige
AW: Wert suchen, alle Ergebnisse in eine Variable
22.11.2018 22:45:55
Sandra
Da soll mal einer sagen, dass man hier nichts dazulernt... Vielen Dank Werner für deine Bemühungen zu später Stunde...
aber gerne doch. o.w.T.
22.11.2018 22:49:58
Werner
AW: aber gerne doch. o.w.T.
22.11.2018 23:26:22
Sandra
Ich trau mich gar nicht mehr zu fragen Werner....:)
ReDim arrAdressen3(1 To WorksheetFunction.CountIf(.Columns(25), strSuch3))
Erklärst mir dieses Passus liebenswerterweise auch noch :)?
AW: aber gerne doch. o.w.T.
22.11.2018 23:35:38
Werner
Hallo Sandra,
das hier
Dim arrAdressen

ist ein Array (Datenfeld) dessen Größe du festlegen mußt.
Allerdings weißt du ja bei der Deklaration (Dim) der Variablen noch nicht, wieviele Daten ins Datenfeld rein müssen/sollen. Somit kannst du seine Größe nicht festlegen.
Hier
WorksheetFunction.CountIf(Columns(3), strSuch))

wird gezählt, wie oft dein Suchbegriff in Spalte 3 vorhanden ist.
Durch
ReDim arrAdressen(1 To WorksheetFunction.CountIf(Columns(3), strSuch))

wird das Datenfeld nachträglich (ReDim) Dimensioniert von 1 bis zur Anzahl der vorkommenden Suchbegriffe.
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige