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

Eingaben bereinigen per VBA

Eingaben bereinigen per VBA
29.09.2023 10:41:01
Heli
Hi zusammen,

ich bräuchte bitte mal einen Denkanstoß zu folgender Thematik:

In eine Tabelle werden von Anwendern Daten hineinkopiert (erhalten wir von externen Partnern), leider sind diese oft fehlerhaft und müssen bereinigt werden.

Fall 1: Anwender kopiert Spaltenweise die Daten > bestimmte Spalten (im Beispiel GTIN) sollen bereinigt werden (in eine Zahl konvertiert und als Text in die Tabelle übertragen)

Fall 2: Anwender kopiert mehrere Spalten gleichzeitig > nur bestimmte Spalten (im Beispiel wieder der GTIN) sollen bereinigt werden

Wie gehe ich das am Besten an?

Hier der Link zur Beispieldatei: https://www.herber.de/bbs/user/163161.xlsx

Danke euch & viele Grüße, Heli

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingaben bereinigen per VBA
29.09.2023 12:42:31
ralf_b
Wie gehe ich das am Besten an?
mit einem Plan.
du solltest vorher schon wissen welche Fehler du entfernen möchtest und diese der Reihe nach abarbeiten.
Je nachdem wie das bei deiner Anwendung past. mittels vba, formellösung oder Powerquery.
Aber das wissen wir hier ja nicht. Und es dürfte dir nicht viel helfen Lösungen aus allen Bereiche ausprobieren zu müssen.
AW: Eingaben bereinigen per VBA
29.09.2023 14:00:01
Heli
Hi und Danke,

habe mich wohl nicht genau genug ausgedrückt: mein Plan ist, die Daten direkt nach der Eingabe durch den Anwender in den Eingabezellen zu bereinigen. Die Bereinigung an Sich (in Zahlen umwandeln, Sonderzeichen löschen usw.) habe ich schon fertig, mir geht's um die Art und Weise des Aufrufs der Bereinigung.

Meine Idee dazu:
Worksheet-Change-Ereignis nutzen > über Intersect testen ob im relevanten Bereich was geändert wurde und dann bereinigen nur wie mache ich das am geschicktesten? Es werden manchmal nur eine einzige Zelle geändert, manchmal aber auch 60.000 Zeilen auf einmal eingefügt.

Vielen Dank schon mal für Anregungen & Ideen

VG, Heli
Anzeige
AW: Eingaben bereinigen per VBA
29.09.2023 14:53:26
ralf_b
da bist du schon auf dem richtigen Weg.

es gilt im Change Event zu prüfen on es sich nur um eine Zelle oder einen Bereich handelt und das machst du z.b. mit target.countlarge >0
damit erhälst du den Hinweis ob du mehrere Zellen abklappern mußt oder nur eine.
bevor du Werte zurückschreibst ins Blatt , nicht vergessen die Events auszuschalten.
bei 60.000 würde ich die erstmal in einem Array auslagern und dort bearbeiten.
AW: Eingaben bereinigen per VBA
29.09.2023 16:06:56
Heli
Sodala habe ich jetzt hinbekommen mit folgendem Code (Ausschnitt)
'GTINs bereinigen

If Not Intersect(Target, Me.Range("Z_BLANKO_GTIN")) Is Nothing Then
Set rng = Intersect(Target, Me.Range("Z_BLANKO_GTIN"))
If rng.Cells.Count = 1 Then
If IsError(rng) Then
rng = ""
Else
strTemp = rng
If IsNumeric(strTemp) = True Then
strTemp = CDbl(strTemp)
Else
strTemp = ""
End If
rng = strTemp
End If
Else
arr = rng
For i = LBound(arr, 1) To UBound(arr, 1)
If IsError(arr(i, 1)) Then
arr(i, 1) = ""
Else
strTemp = arr(i, 1)
If IsNumeric(strTemp) = True Then
strTemp = CDbl(strTemp)
Else
strTemp = ""
End If
arr(i, 1) = strTemp
End If
Next i
rng = arr
End If
End If


Vielen Dank für die Hilfe & schönes Wochenende!
Heli
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige