1.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen
ich habe folgendes Problem. ich möchte mittels Inputbox Daten in einem Bestimmten Bereich eingeben. d.h
1. Wert in erste freie Zelle in Spalte A
2. Wert in nächste freie Zelle in Spalte A
etc.
nach Zelle A10 soll gestoppt werden und dann mit B1 weitgermacht werden bis B10. dann C1 bis c10, D1 bis C10 etc.

Sub Eingabe()

Dim ein As String, einMsg As String
Dim a As Range

ein = InputBox("Tabelle1")
If Len(ein) = 0 Then
einMsg = "Keinen Suchbegriff eingegeben!"
Else
With Worksheets("Tabelle1").Range("A1:Z10")
Set a = .Find(ein, LookIn:=xlValues, lookat:=xlWhole)
If Not a Is Nothing Then
einMsg = "Artikel -- " & ein & " -- bereits vorhanden"
Else
.Cells(IIf(Len(.Cells(1, 1)) = 0, 1, IIf(Len(.Cells(2, 1)) = 0, 2, .Cells(1, 1).End( _
xlDown).Row + 1)), 1) = ein
End If
End With
End If
If Len(einMsg) > 0 Then MsgBox einMsg, vbExclamation, "ENDE"

End Sub

kann mir hier jmd weiterhelfen?

grüße

5 Antworten

0 Punkte
Beantwortet von
das letzte c10 sollte d10 heißen
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo rubin,
Zeilenweise könnte es so funktionieren:

Sub Eingabe()
Dim ein As String, einMsg As String
Dim a As Range
ein = InputBox("Tabelle1")
If Len(ein) = 0 Then
einMsg = "Keinen Suchbegriff eingegeben!"
Else
With Worksheets("Tabelle1").Range("A1:Z10")
Set a = .Find(ein, LookIn:=xlValues, lookat:=xlWhole)
If Not a Is Nothing Then
einMsg = "Artikel -- " & ein & " -- bereits vorhanden"
Else
For Each zelle In Range("A1:Z10").Cells
If zelle.Value = "" Then
zelle.Value = ein
Exit For
End If
Next zelle
End If
End With
End If
If Len(einMsg) > 0 Then MsgBox einMsg, vbExclamation, "ENDE"
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von
hey
danke schonmal für die schnelle antwort
hm so ganz funktioniert es noch nicht so wie ich mir das vorstelle. es werden zuerst alle zellen in Zeile 1 befüllt, dann zeile 2....(a1,b1,c1 bis z1)

ich möchte aber zuerst a1, a2, a3 bis a10 befüllen
danach b1, b2, b3 bis b 10 etc


grüße
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo,
es gibt bestimmt noch einfachere Lösungen.
Aber so könnte es auch funktionieren.

Gruß
fedjo

Sub Eingabe()
Dim ein As String, einMsg As String
Dim a As Range
ein = InputBox("Tabelle1")
If Len(ein) = 0 Then
einMsg = "Keinen Suchbegriff eingegeben!"
Else
With Worksheets("Tabelle1").Range("A1:Z10")
Set a = .Find(ein, LookIn:=xlValues, lookat:=xlWhole)
If Not a Is Nothing Then
einMsg = "Artikel -- " & ein & " -- bereits vorhanden"
Else
For Each zelle In _
Range("A1:A10,B1:B10,C1:C10,D1:D10,E1:E10,F1:F10,G1:G10,H1:H10,I1:I10,J1:J10,K1:K10,L1:L10,M1:M10,N1:N10,O1:O10,P1:P10,Q1:Q10,R1:R10,R1:R10,S1:S10,T1:BT10,U1:U10,V1:V10,W1:W10,X1:X10,Y1:Y10,Z1:Z10") _
.Cells
If zelle.Value = "" Then
zelle.Value = ein
Exit For
End If
Next zelle
End If
End With
End If
If Len(einMsg) > 0 Then MsgBox einMsg, vbExclamation, "ENDE"
End Sub
0 Punkte
Beantwortet von
hi super das funktioniert.
...