Anzeige
Archiv - Navigation
320to324
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
320to324
320to324
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleife/ Werte in Variablen speichern

Schleife/ Werte in Variablen speichern
15.10.2003 09:12:09
Martin
Hallo,

Ich habe folgende Frage. Spalte A einer Tabelle enthält Ländercodes, zB.


CH
FR
CH
ES
IT
IT
...


Der gleiche Code kann mehrmals vorkommen, die Liste ist nicht nach Codes geordnet (und kann auch nicht).
Sinn dieser Codes ist es, die Tabelle an bestimmte Personen in der Firma zu verschicken. Der User sieht also zB 'CH' und 'FR' und weiss, dass die Tabelle (mittel Makro) an Kollegen geschickt werden soll, die verantwortlich sind für die Schweiz und Frankreich. Das funktioniert derzeit so, dass eine Userform hochkommt und der User mittels Checkboxen die entsprechende Auswahl festlegt.

Ich dachte mir, dass Excel mir eigentlich diese Arbeit abnehmen kann. Dazu müsste (so stelle ich mir das vor) eine Schleife Spalte A durchlaufen und alle verschiedenen Codes einmal in einer Variablen speichern. Der Inhalt der Variablen wird dann an an den Teil des Makros weitergegeben, der das 'TO' Feld bestimmt.

Ich weiss aber nicht
- wie ich alle verschiedenen Werte nur einmal in einem Durchaluf speichern soll und
- wie diese Codes dann in die korrekten Mailadressen konvertiert werden können.

Kann mir jemand hierbei helfen bitte.

Gruss,
Martin

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Mit Collection
16.10.2003 00:15:53
Hans T.
Hallo Martin

Versuch mal den folgenden Code. Die MsgBox kannst du durch die Weiterverarbeitung der Ländercodes ersetzen.

Public colCCodes As New Collection


Private Sub Auflisten()
'Listet die Werte in Spalte 1 einmal sortiert auf
Dim varCCode As Variant
While colCCodes.Count > 0                 'Collection leeren, falls nicht leer
colCCodes.Remove colCCodes.Count
Wend
On Error Resume Next                      'unterdrückt Fehler bei mehrfachen Einträgen
'von A1 bis zur letzen benutzten Zelle lesen
For Each varCCode In Range([A1], Cells([A1].SpecialCells(xlCellTypeLastCell).Row, 1)).Cells
If Not IsEmpty(varCCode) Then           'leere Zellen ignorieren
colCCodes.Add varCCode, varCCode      'trägt Code ein, falls noch nicht in Collection
End If
Next
Set colCCodes = SortColl(colCCodes)       'sortieren, falls erwünscht
For Each varCCode In colCCodes            'Ausgabe
MsgBox varCCode
Next
End Sub



Private Function SortColl(colRaw As Collection) As Collection
'01-00 Sorts elements in a collection as text (a = A, 10 < 2, _ < 0)
Dim i As Long, j As Long
Dim varSwap1, varSwap2
For i = 1 To colRaw.Count - 1
For j = i + 1 To colRaw.Count
If colRaw(i) > colRaw(j) Then
varSwap1 = colRaw(i)
varSwap2 = colRaw(j)
colRaw.Add varSwap1, before:=j
colRaw.Add varSwap2, before:=i
colRaw.Remove i + 1
colRaw.Remove j + 1
End If
Next
Next
Set SortColl = colRaw
End Function


Gruss
Hans T.
Anzeige
AW: Mit Collection
16.10.2003 08:55:57
Martin
Vielen Dank Hans, das klappt sehr gut.

Gruss,
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige