Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1544to1548
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

Unterschiedliche Variablen in UserForm darstellen

Unterschiedliche Variablen in UserForm darstellen
27.02.2017 08:12:20
Christian
Hallo in die Runde,
folgendes Szenario: Ich habe eine riesige Arbeitsliste mit rund 50 Spalten und ein paar tausend Zeilen, in die ich mittels VBA Daten importiere. Das heißt, ich öffne die zu importierende Datei, schreibe die Daten in Variablen und übertrage sie letztlich in die Arbeitsliste.
Nun möchte ich abfangen, dass Daten "blind" überschrieben werden. Einerseits habe ich das so gelöst, dass in der Arbeitsliste ein Datumsstempel gesetzt wird, wann immer in einer Zeile Daten importiert werden. Nun frage ich also ab, ob die Datumsspalte leer ist oder ob dort schon ein Eintrag vorhanden ist (im Stil: "Import bereits am erfolgt, wollen Sie überschreiben?"). So weit, so gut.
Nun möchte ich aber die zu überschreibenden Daten visuell in einer UserForm darstellen. Das heißt: Ich lese am Anfang des Imports die "Bestandsdaten" aus der entsprechenden Zeile aus und schreibe sie in eine Vergleichsvariable. So kann ich die Alt-Daten mit den Neu-Daten vergleichen und einen Counter hochzählen, sodass ich am Ende weiß, wieviele Datensätze überschrieben werden (Anzahl).
Mein Problem: Ich möchte in der UserForm die Anzahl der zu überschreibenden Datensätze relativ schlank darstellen und weiß nicht, wie ich das von der Logik her lösen kann. Meine Vorstellung (das wird nicht korrekt dargestellt, bitte denkt euch die Leerzeichen selbst):
Alt Neu
Variable 1 Auto Bus
Variable 5 Baum Blume
Variable 7 211 199
Also immer dann, wenn die Alt-Daten sich von den Neu-Daten unterscheiden, wird ein Counter gesetzt. Anhand des Counters bekomme ich raus, wieviele Textfelder und Beschriftungen ich brauche. Daraus berechnet sich auch die Gesamtgröße der UserForm, die "Optik" ist also nicht das Problem. Nur wie vermittle ich der UserForm, welche Variable in welcher Textbox der UserForm stehen soll?
Gruß
Christian

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unterschiedliche Variablen in UserForm darstellen
27.02.2017 09:44:18
ChrisL
Hi Christian
Eine einfache Lösung wäre die Daten in eine Hilfstabelle zu schreiben.
Eine besser Lösung ist mit Datenfelder/Array (oder vergleichbarer Methode) zu arbeiten.
http://www.vba-wordwelt.de/grundsaetzliches/wichtige-funktionen/array/
Hierbei würdest du alle "Rohdaten" in Arrays übertragen, danach die Arrays abgleichen und anschliessend die Array in Tabellen/Userform ausgeben.
Beispielhaft:
Sub t()
Dim ar1() As Variant
Dim ar2() As Variant
ReDim ar3(1, 0) As Variant
Dim i As Integer, iCounter As Integer
ar1() = Array("Apfel", "Birne", "Pflaume", 211, "Melone")
ar2() = Array("Auto", "Motor", "Pflaume", 199, "Melone")
For i = 0 To UBound(ar1)
If ar1(i)  ar2(i) Then
ReDim Preserve ar3(1, iCounter)
ar3(0, iCounter) = ar1(i)
ar3(1, iCounter) = ar2(i)
iCounter = iCounter + 1
End If
Next i
MsgBox "Anzahl Differenzen: " & iCounter
MsgBox "Differenz 1: " & ar3(0, 0) & " zu " & ar3(1, 0)
MsgBox "Differenz 2: " & ar3(0, 1) & " zu " & ar3(1, 1)
MsgBox "Differenz 3: " & ar3(0, 2) & " zu " & ar3(1, 2)
End Sub

cu
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige