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

VBA - Variable = Spalte und wir wollen hochzählen

VBA - Variable = Spalte und wir wollen hochzählen
19.07.2018 13:20:06
Sebastian
Hallo VBA-Gemeinde,
ich stecke noch in den Kinderschuhen der Excel VBA Welt und habe ein kleineres Problem.
Ich will, dass der User nach Buttonklick eine Spalte eingibt, welche im Nachgang bearbeitet wird.
Gibt der User beispielsweise "a" ein, so soll eine weitere Spalte nach "a" angelegt werden (also bei b), diese Spalte ist zunächst leer.
Im weiteren Verlauf soll jede Zelle aus a nach bestimmten Kriterien überprüft werden und findet man ein Fehler, so soll dieser in der neuerstellten Spalte bereinigt dargestellt werden.
Mein Problem ist aktuell, dass ich es nicht schaffe, dass VBA mir eine Spalte in a+1 anlegt, da dies ja Buchstaben sind und ich nicht hochzählen kann.
Auch mit Schleifen bin ich nicht zum Ziel gekommen.
Es sieht wie folgt aus:
Sub Bereinigen()
Dim x As Integer
Dim y As Variant
Dim i As Integer
Dim lastrow As Integer
y = InputBox("Welche Spalte soll bereinigt werden?")
If y = "" Then
MsgBox "Bitte geben Sie eine Spalte an!", vbInformation
ElseIf IsNumeric(y) = True Then
MsgBox "Bitte gebe ein richtiges Spaltenformat an!", vbInformation
End If
lastrow = ThisWorkbook.Sheets("kopie").Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To lastrow
Range(y & x) = Application.Substitute(Range(y & x), Chr(10), "")
Range(y & x) = Trim(Range(y & x))
Range(y & x) = Application.Substitute(Range(y & x), "gmbh", "GmbH")
Range(y & x) = Application.Substitute(Range(y & x), "ohg", "OHG")
Range(y & x) = Application.Substitute(Range(y & x), "eg", "eG")
Range(y & x) = Application.Substitute(Range(y & x), "kg", "KG")
Next
End Sub

Im folgenden Beispiel würde er nur die ausgewählte Spalte direkt bereinigen nach den Kriterien.
Wir wollen aber in Spalte+1 eine neue Spalte angelegt bekommen udn die Änderungen soll er dort ablegen.
Sprich wir werden sagen, suche in Spalte"Eingabe" nach Fehlern, wenn Fehler vorliegt, dann kopiere in neue Spalte und bereinige.
Weiß jemand wie ich es erstmal hinbekomme, dass die zusätzliche Hilfsspalte angelegt wird?
Also gibt der User "b" ein, dann soll in C angelegt werden, gibt er C ein, dann in D, usw.
Ich hoffe, dass ich mich verständlich ausgedrückt habe und das mein Ansatz erstmal genügt.
Ich bin für jeden Ratschlag/Tipp dankbar,
Sebastian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Variable = Spalte und wir wollen hochzählen
19.07.2018 13:26:37
Sebastian
Gerade mit einer IF-Verschachtelung herumgespielt und so geht es eigentlich, aber siehst sehr unorthodox und nicht elegant aus.
Geht das vielleicht viel leichter und eleganter durch eine Schleife etc?
Hier der Ansatz was passieren soll:
If y = "a" Then
Range("b1").EntireColumn.Insert
ElseIf y = "b" Then
Range("c1").EntireColumn.Insert
ElseIf y = "c" Then
Range("d1").EntireColumn.Insert
ElseIf y = "d" Then
Range("e1").EntireColumn.Insert
ElseIf y = "e" Then
Range("f1").EntireColumn.Insert
ElseIf y = "f" Then
Range("g1").EntireColumn.Insert
ElseIf y = "g" Then
Range("h1").EntireColumn.Insert
ElseIf y = "h" Then
Range("i1").EntireColumn.Insert
ElseIf y = "i" Then
Range("j1").EntireColumn.Insert
ElseIf y = "j" Then
Range("k1").EntireColumn.Insert
ElseIf y = "k" Then
Range("l1").EntireColumn.Insert
ElseIf y = "l" Then
Range("m1").EntireColumn.Insert
ElseIf y = "m" Then
Range("n1").EntireColumn.Insert
ElseIf y = "n" Then
Range("o1").EntireColumn.Insert
'End If
Anzeige
AW: VBA - Variable = Spalte und wir wollen hochzählen
19.07.2018 13:30:50
Hajo_Zi
Hallo Sebastian,
Range(y &"1").Offset(0,1).EntireColumn.Insert

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
AW: VBA - Variable = Spalte und wir wollen hochzählen
19.07.2018 13:32:33
ChrisL
Hi
Zwei Beispiele
Sub t()
Dim y As String
y = "A"
MsgBox Cells(1, y).Address
MsgBox Cells(1, y).Offset(0, 1).Address
End Sub

Sub tt()
Dim y As Range
Set y = Application.InputBox("Bereich direkt auswählen", "Auswahl per Mausklick", , , , , , 8)
MsgBox y.Address
End Sub
cu
Chris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige