Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1752to1756
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

Makro: Werte aus 2 Spalten vertauschen, wenn sie Buchstaben enthalten

Makro: Werte aus 2 Spalten vertauschen, wenn sie Buchstaben enthalten
27.04.2020 12:35:05
Jan-Hendrik
Hallo zusammen
Ich bräuchte eure Hilfe bei einem Excel Skript, für Report, der monatlich durchgeführt wird, und bei dem manchmal die Daten falsch aus der Datenbank gezogen werden.
Ich soll für eine Excel Tabelle ein Marko schreiben, mit dem man Werte aus 2 Spalten vertauscht, falls sie einen Buchstaben enthalten.
Genauer: In Spalte N (Reference) dürfen nur Zahlen stehen, manchmal ist jedoch als Wert so etwas wie: VF1901647, also mit Buchstaben eingetragen.
Ist dies der Fall, muss der Inhalt der Zelle mit dem jeweiligen Wert aus Spalte P vertauscht werden.
Dies soll für alle Zeilen der Tabelle überprüft und dann gegebenfalls getauscht werden.
Das Makro müsste also erkennen, dass ein Buchstabe/String eingetragen ist und die Werte tauschen.
Könntet Ihr mir dabei helfen? Ich kenne mich noch sehr wenig aus mit Excel Makros und bin gerade ein wenig ratlos.
Vielen Dank!
Jan-Hendrik

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

Betreff
Datum
Anwender
Anzeige
AW: Makro: Werte aus 2 Spalten vertauschen, wenn sie Buchstaben enthalten
27.04.2020 12:47:20
Werner
Hallo,
z.B. so:
Option Explicit
Sub Tauschen()
Dim loLetzte As Long, i As Long, strText As String
Application.ScreenUpdating = False
'Blattname anpassen
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, "N").End(xlUp).Row
'Start in Zeile 2
For i = 2 To loLetzte
If Not IsNumeric(.Cells(i, "N")) Then
strText = .Cells(i, "N")
.Cells(i, "N") = .Cells(i, "P")
.Cells(i, "P") = strText
End If
Next i
End With
End Sub
Gruß Werner
AW: Makro: Werte aus 2 Spalten vertauschen, wenn sie Buchstaben enthalten
27.04.2020 12:48:41
MCO
Hallo Jan-Hendrik!
Probier mal diese beiden Varianten aus. Je nach Import-Format funktioniert die erste vielleicht nicht.
Sub Buchst_tausch()
Set Rng = Range("N:N").SpecialCells(xlCellTypeConstants, xlTextValues)
Rng.Select 'nur zur kontrolle
For Each cl In Rng
cl.Interior.ColorIndex = 3
P = cl.Offset(0, 2)
cl.Offset(0, 2) = cl.Value
cl.Value = P
Next cl
End Sub
Sub Buchst_tausch2()
Set Rng = Range("N:N").SpecialCells(xlCellTypeConstants)
For Each cl In Rng
If Not IsNumeric(cl) Then 'kontrolle pro zelle
cl.Interior.ColorIndex = 3
P = cl.Offset(0, 2)
cl.Offset(0, 2) = cl.Value
cl.Value = P
End If
Next cl
End Sub
Gruß, MCO
Anzeige
Von einer Rückmeldung....
01.05.2020 11:27:25
Werner
Hallo,
...scheinst du wohl nichts zu halten?
Gruß Werner
AW: Von einer Rückmeldung....
06.05.2020 10:18:11
Jan-Hendrik
Hallo noch einmal. Tut mir wirklich leid mich erst jetzt zu melden, ich hatte um den 1. Mai rum Urlaub (leider nicht mehr stornierbar :( ) und bin erst heute wieder am Arbeitsrechner.
Vielen Dank für die Hilfe, dein Vorschlag funktioniert einwandfrei Werner, bei deinen bin ich grad noch am Ausprobieren MCO.
Ich will fast nicht fragen, aber in der Zwischenzeit haben sich natürlich noch ein paar Besonderheiten/Sonderfälle ergeben, die ich im Skript berücksichtigen muss, und hoffe Ihr könnt mir dabei auch noch mal helfen.
Wenn in der jeweiligen Zelle in Spalte N und P Buchstaben und Zahlen stehen (z.b. SF4019049594), soll nicht getauscht werden, sondern die Buchstaben in Spalte N gelöscht werden, so dass für die Zelle nur noch Zahlen übrig bleiben.
Dazu habe ich hier im Forum etwas gefunden, werde aber nicht richtig schlau draus, bzw weiß nicht wie ich es als Zusatzbedingung einbaue
https://www.herber.de/forum/archiv/928to932/929119_Schleife_Buchstaben_loeschen_Zahlen_bleiben_stehen.html
Ich hab den Aufwand mich in VBA komplett neu einzuarbeiten eindeutig unterschätzt.
Als weitere Bedingung soll nichts gemacht werden, wenn die Zelle in Spalte N nur Buchstaben enthält. Hier müsste ich ja grundsätzlich mit der SpecialCells() Methode und xlTextValues aber bin grade am Knobeln wie ich es richtig einbaue. Vor der Schleife direkt als Range festlegen oder innerhalb der Schleife als Bedingung.
Ich wäre für jede Hilfe dankbar, und verspreche diesmal schneller zu antworten
Viele Grüße,
Jan-Hendrik
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige