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

Problem mit Range(Name).Value

Problem mit Range(Name).Value
12.11.2016 12:15:49
Max2
Hallo Leute,
Ich habe ein Blatt mit 16 Ranges, deren Namen ich Definiert habe.
Die Namen gehen von Block1 bis Block 16
Ich habe eine kleine UserForm mit TextBoxen, die Textbox.Values schreibe ich in String Variablen und diese in das Array arrDaten(3).
Es soll also in die erste Zelle der Range BlockXY, der Wert von arrDaten(0) eingetragen werden, in die nächste arrDaten(1).
Klappen tuts leider nicht
Mein Code bis Jetzt:

TbV1 = UserForm1.TextBox1.Value
TbV2 = UserForm1.TextBox2.Value
TbV3 = UserForm1.TextBox3.Value
TbV4 = UserForm1.TextBox4.Value
TbV5 = UserForm1.TextBox5.Value
CbV1 = UserForm1.ComboBox1.Value
sName = TbV1 & " " & TbV2
sAdd = TbV4 & " " & TbV5
arrDaten(0) = CbV1
arrDaten(1) = sName
arrDaten(2) = TbV3
arrDaten(3) = sAdd
Set wkb = ThisWorkbook
Set wks = wkb.Sheets("Tabelle1")
With wks
Name = InputBox("An welcher Stelle einfügen?")
i = Name
For a = 0 To 3
For Each c In Range("Block" & i)
If c.Value = "" Then
c.Value = arrDaten(a)
End If
Next c
Next a
End With
End Sub
Wo hab ich da meinen Denkfehler?
Wäre es sinnvoller das Array so zu Befüllen "arrDaten = Array(x, y, z, q)"
Und dann mit .Resize = arrDaten die Daten zu übertragen ?
Die einzelnen Werte sollen untereinander stehen! nicht nebeneinander .
Also am Beispiel .Offset: .OffSet(1) und nicht .Offset(, 1)

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Range(Name).Value
12.11.2016 13:05:20
Bastian
Immer schlecht ohne eine Bsp Datei ;) das nachzuvollziehen
Gruß Basti
AW: Problem mit Range(Name).Value
12.11.2016 13:32:11
Max2
Hier die Datei https://www.herber.de/bbs/user/109374.xlsm
Aber aufpassen! Ich weiß nicht warum aber bei mir hängt sich Excel jetzt auf wenn den Button "Daten einfügen" drücke... warum auch immer
Vor dem letzten speichern war das noch nicht so...
AW: Problem mit Range(Name).Value
12.11.2016 13:44:22
Max2
Oh Sorry Leute mir ist gerade aufgefallen dass ich in den Button der die UserForm startet, das
"UserForm1.Show" falsch geschrieben habe, peinlich
einfach Alt+F11 und userform starten oder debuggen und das zweite "u" in UserForm1 entfernen
Anzeige
AW: Problem mit Range(Name).Value
12.11.2016 13:57:14
Bastian
Wieso willst du das in ein Array Schreiben und nicht gleich die Daten von den Textboxen in die Zellen schreiben ?
AW: Problem mit Range(Name).Value
12.11.2016 14:10:19
Max2
Dachte das wäre dadurch schneller, aber wahrscheinlich eher doch nicht.
Hängt sich bei dir die Datei auch auf ?
AW: Problem mit Range(Name).Value
12.11.2016 14:20:01
Bastian
Also bei den paar werten macht das keinen sin würde ich mal so sagen ;)
Public Sub DatenEinfügen()
Set wks = ThisWorkbook.Sheets("Tabelle1")
With wks
i = InputBox("An welcher Stelle einfügen?")
If i  "" Then
With .Range("Block" & i)
.Cells(1, 1).Value = UserForm1.ComboBox1.Text
.Cells(2, 1).Value = UserForm1.TextBox1.Text
.Cells(3, 1).Value = UserForm1.TextBox2.Text & " , " & UserForm1.TextBox3.Text
.Cells(4, 1).Value = UserForm1.TextBox3.Text
.Cells(5, 1).Value = UserForm1.TextBox4.Text
End With
End If
End With
End Sub
Gruß Basti
Anzeige
AW: Problem mit Range(Name).Value
12.11.2016 14:19:29
Max2
So habe es jetzt geändert, es in ein Array zuschreiben war echt schwachsinnig von mir.
Hatte mich zu sehr auf die Variante versteift, Danke dir.
Hier mein Code, der Funktioniert:

TbV1 = UserForm1.TextBox1.Value
TbV2 = UserForm1.TextBox2.Value
TbV3 = UserForm1.TextBox3.Value
TbV4 = UserForm1.TextBox4.Value
TbV5 = UserForm1.TextBox5.Value
CbV1 = UserForm1.ComboBox1.Value
sName = TbV1 & " " & TbV2
sAdd = TbV4 & " " & TbV5
Set wkb = ThisWorkbook
Set wks = wkb.Sheets("Tabelle1")
With wks
Name = InputBox("An welcher Stelle einfügen?")
i = Name
Set rngBereich = Range("Block" & i)
For Each c In rngBereich
If c.Value = "" Then
c.Value = CbV1
c.Offset(1).Value = sName
c.Offset(2).Value = TbV3
c.Offset(3).Value = sAdd
ElseIf c.Value  "" Then
Exit Sub
End If
Next c
Set rngBereich = Nothing
End With
End Sub

Anzeige
AW: Problem mit Range(Name).Value
12.11.2016 14:22:45
Bastian
Hm wieso nicht so ?
Public Sub DatenEinfügen()
Set wks = ThisWorkbook.Sheets("Tabelle1")
With wks
i = InputBox("An welcher Stelle einfügen?")
If i  "" Then
With .Range("Block" & i)
.Cells(1, 1).Value = UserForm1.ComboBox1.Text
.Cells(2, 1).Value = UserForm1.TextBox1.Text & " , " & UserForm1.TextBox2.Text
.Cells(3, 1).Value = UserForm1.TextBox3.Text
.Cells(4, 1).Value = UserForm1.TextBox4.Text
.Cells(5, 1).Value = UserForm1.TextBox5.Text
End With
End If
End With
End Sub

AW: Problem mit Range(Name).Value
13.11.2016 10:54:13
Max2
Ja Stimmt so wäre es eigentlich noch kürzer
AW: Problem mit Range(Name).Value
13.11.2016 11:05:05
Hajo_Zi
man sollte die Inputbox noch ändern, das nur Zahlen.
'Inputbox mit Type 1 laesst nur Zahlen als Eingabe zu.
VarPrints = Application.InputBox("Anzahl der Ausdrucke", "Drucken", 0, Type:=1)

Anzeige
AW: Problem mit Range(Name).Value
13.11.2016 11:43:50
Max2
Ja da hast du recht, ganz vergessen, danke.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige