Hallo Experten,
ich habe in einem UserForm TextBoxen eingefügt, worüber man in einer Textbox einen Spaltenbuchstaben, in der anderen die Zeilennummer eingeben soll.
In meinen Code, den ich mir grad zusammenbastel kommt folgendes vor:
Range(„B2:B“ & lngEnde) womit es auch funktioniert.
Ich möchte aber die Möglichkeit haben, die Spalte und Zeile über das UserForm auszuwählen und nicht festgelegte Werte zu benutzen.
Wenn ich Range(spaltezeile:spalte & lngEnde) schreib funktioniert es nicht.
Was kann ich da machen?
Bitte lacht mich nicht aus, ich kann mir denken, dass die Lösung recht simpel ist xD
Danke schonmal
Gruß
Imhotep
Hallo Imhotep,
ich würde das mal so probieren:
Range (spalte1 & zeile1 & „:“ & spalte2 & zeile2)
Ohne Garantie, ich habs nicht ausprobiert.
Gruß, Andreas
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Imhotep,
ich habe in einem UserForm TextBoxen eingefügt, worüber man in
einer Textbox einen Spaltenbuchstaben, in der anderen die
Zeilennummer eingeben soll.
langt da nicht eine textBox wo du B4711 eingeben kannst?
Range(„B2:B“ & lngEnde) womit es auch funktioniert.
Sieht schon aufgrund des Variablennamens gut aus.
Ich möchte aber die Möglichkeit haben, die Spalte und Zeile
über das UserForm auszuwählen und nicht festgelegte Werte zu
benutzen.
Wenn ich Range(spaltezeile:spalte & lngEnde) schreib
funktioniert es nicht.
Zeige mal bitte den Code den du hast. Und wenn die Variablen nicht mit einem im Code sichtbaren Werte gefüllt wrden, sondern so:
spaltezeile=cells(45,6)
dann sage auch was in cells(45,6) drinnesteht. Und wenn die Variablen über die Textboxen gefüllt werde, sage uns, welche Werte da ggfs. eingegebn werden könnten.
ich kann mir denken, dass die
Lösung recht simpel ist xD
Kann ich ohne den Gesamtcode, ggfs. noch den Hintergrund was der Code genau machen soll, nicht beurteilen.
Und simpel ist sehr relativ 
Gruß
Imhotep
Ist dein Realvorname ein Geheimnis?
Gruß
Reinhard
Hallo Imhotep,
ich würde das mal so probieren:
Range (spalte1 & zeile1 & „:“ & spalte2 & zeile2)
Ohne Garantie, ich habs nicht ausprobiert.
Gruß, Andreas
Hallo Andreas,
es hat leider nicht funktioniert 
Trotzdem danke
Hallo Reinhard,
das Programm soll doppelte Daten innerhalb einer Spalte (vorerst, später auch als 2.Möglichkeit innerhalb einer Zeile.) finden und farblich markieren. Der ganze Code ist aus Schnipseln, die ich mir zusammengesucht habe zusammengesetzt (Google usw.). Im Code steht auch mein Name, ich denk das ist ok, solang ich nicht einen kompletten Code nehme und meinen Namen drunter setze.
Das ganze funktioniert bis jetzt wie geplant, wenn da nicht der eine kleine Bereich wäre, den ich gerne flexibel haben möchte.
Code hinter dem UserForm:
Private Sub CommandButton1_Click()
MsgBox („Dieses Makro wurde von Sebastian XXXXX erstellt. Kontakt: XXXXXXXXX“)
End Sub
Private Sub CommandButton2_Click()
Dim lngZeile As Long
Dim lngEnde As Long
tabe(1) = ComboBox1.Text
tabnam(1) = ComboBox2.Text
zeile = TextBox2.Text
spalte = TextBox1.Text
lngEnde = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For lngZeile = zeile To Workbooks(tabe(1)).Worksheets(tabnam(1)).Range(spalte & 65536).End(xlUp).Row
If Application.CountIf(Range(„B2:B“ & lngEnde), Range(spalte & lngZeile)) > 1 Then ’ Hier der Kern des Problems
Range(spalte & lngZeile).Interior.ColorIndex = 45
End If
Next lngZeile
End Sub
Private Sub UserForm_Initialize()
Dim AM As Object
For Each AM In Application.Workbooks
With ComboBox1
.AddItem AM.Name
End With
Next AM
End Sub
Private Sub ComboBox1_Change()
Dim Blatt As Object
Workbooks(ComboBox1.Text).Activate
For Each Blatt In ActiveWorkbook.Sheets
With ComboBox2
.AddItem Blatt.Name
End With
Next Blatt
End Sub
Private Sub ComboBox2_Change()
Worksheets(ComboBox2.Text).Activate
End Sub
Außerdem in einem Modul:
Option Explicit
Public tabe(1), tabnam(1)
Falls du noch ein Bild von der UserForm benötigst, mach ich noch ein Screenshot und stell ich hier rein.
Gruß
Sebastian 
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Ich hab ein wenig hin und her probiert und eine Lösung gefunden. Wie ich richtig dachte, ist es wirklich simpel, da es nur auf die richtige Schreibweise ankam. Hier, was ich gemacht hab:
Private Sub CommandButton2_Click()
Dim lngZeile As Long
Dim lngEnde As Long
tabe(1) = ComboBox1.Text
tabnam(1) = ComboBox2.Text
zeile = TextBox2.Text
spalte = TextBox1.Text
lngEnde = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For lngZeile = zeile To Workbooks(tabe(1)).Worksheets(tabnam(1)).Range(spalte & 65536).End(xlUp).Row
If Application.CountIf(Range(spalte + zeile + „:“ + spalte & lngEnde), Range(spalte & lngZeile)) > 1 Then
Range(spalte & lngZeile).Interior.ColorIndex = 45
End If
Next lngZeile
End Sub
Ich danke trotzdem vielmals und wünsche noch einen schönen Abend
Gruß
Sebastian
Hallo Sebastian,
ich kann es gar nicht begründen weil ich da nix getestet habe aber aus dem Bauch heraus habe ich das Gefühl mit deinem Code stimmt was nicht, kann auch sein daß ich ihn anders geschriebn hätte, aber das ist ja wurscht wenn er funktioniert, never touch a running system 
Was ich aber noch loswerden möchte, ersetze 65536 durch Rows.count, dann klappt’s auch in Excel2007.
Und
Application.WorksheetFunction.CountIf
ist schneller als
Application.CountIf
Laß das mal laufen:
Sub test()
Dim T, N, dummy
T = Timer
For N = 1 To 10000
dummy = Application.WorksheetFunction.CountIf(Columns(1), "xyz")
Next N
MsgBox Timer - T
T = Timer
For N = 1 To 10000
dummy = Application.CountIf(Columns(1), "xyz")
Next N
MsgBox Timer - T
End Sub
Gruß
Reinhard
Hallo Reinhard,
danke für die Tipps. Hab auch den Test durchlaufen lassen. Erster Wert: 19,09375 und zweiter Wert: 19,1875. Scheint also wirklich schneller zu sein, auch wenn ich beim warten auf das Ergebnis keinen großen Unterschied gemerkt habe
Werd trotzdem meinen Code mal optimieren. Vielen Dank.
Gruß
Sebastian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]