1.3k Aufrufe
Gefragt in Tabellenkalkulation von raffi83 Einsteiger_in (29 Punkte)
Hallo

Ich müsste mal die Hilfe eines Profis in Anspruch nehmen und zwar in Sachen Excel VBA. Da ich noch ziemlich neu in der Welt der VBA bin.

Habe ein Worksheet in dem ich über ein ComandButton ein UserForm ansteuern kann. Das ist soweit alles i.O . Wenn ich nun dieses UserForm aufgerufen habe erscheinen im oberen Teil fünf OptionButtons mit dehnen ich gerne die fünf verschiedene Bereiche auf dem Worksheet ansteuern möchte um die nachfolgend eingegebenen Werte im UserForm in den jeweilig gewählten Bereich zu übertragen.

Mein Problem ist ich habe einen Skript zusammengebastelt und der funktioniert auch nur leider werden die Eingaben die ich im UserForm mache immer von der Zeile 10 an eingetragen und nicht in die Bereiche die ich wähle.

Habe mal meinen Ursprünglichen Code hier copiert:

Private Sub cmdHinzufuegen_Click()
Dim Zeile As Integer
Dim LetzteZeile As Integer
Dim NeuerEintrag As String




'Ablehnen, falls kein Eintrag für erste Spalte (Model)angegeben wird
If Model.Text = "" Then
MsgBox "Bitte ein Modell in der ersten Spallte eintragen, wenn kein Model eingetragen wird, bitte [ALL] eingeben"
Exit Sub
End If

'In Grossbuchstaben umwandeln
NeuerEintrag = StrConv(TSBNr.Text, vbUpperCase)

'Alle TSB Einträge durchsuchen
Zeile = 9
Do While Cells(Zeile, 9).Value <> ""
'Falls neue TSB Nr.bereits vorhanden
If StrConv(Cells(Zeile, 9).Value, vbUpperCase) = NeuerEintrag Then
MsgBox "Fehler: Es gibt bereits ein TSB mit dem Eintrag: " & TSBNr.Text, vbCritical
Exit Sub

'Zeile für neuen Eintrag ermitteln
ElseIf StrConv(Cells(Zeile, 1).Value, vbUpperCase) > NeuerEintrag Then
Exit Do
End If
Zeile = Zeile + 1
Loop

'Letzte Zeile in den verschiedenen Bereiche ermitteln
LetzteZeile = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row


'Neue Zeile einfügen, falls notwendig
If Zeile <= LetzteZeile Then
Cells(Zeile, 1).EntireRow.Insert
End If

'Neuer Eintrag eintragen
Cells(Zeile, 1).Value = Model.Text
Cells(Zeile, 2).Value = Body.Text
Cells(Zeile, 3).Value = Motor.Text
Cells(Zeile, 4).Value = MY.Text
Cells(Zeile, 5).Value = Getriebe.Text
Cells(Zeile, 6).Value = Art_der_Info.Text
Cells(Zeile, 7).Value = Gruppe.Text
Cells(Zeile, 8).Value = Published.Text
Cells(Zeile, 9).Value = TSBNr.Text
Cells(Zeile, 10).Value = Bemerkung.Text

'Info
MsgBox "Neuer Eintrag " & TSBNr.Text & " wurde in die Liste übernommen"
End Sub

Hoffe jemand kann mir helfen und verraten wo und wie ich die abfrage der Bereiche in meinen Code einfügen muss.

danke für die Hilfe

Gruss Raffi

3 Antworten

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Raffi,
um dir zu helfen wär eine Musterdatei mit der UserForm sehr hilfreich. Du könntest die Datei hier uploaden und den Link dann ins Forum stellen.

Gruß
fedjo
0 Punkte
Beantwortet von raffi83 Einsteiger_in (29 Punkte)
Hallo fedjo

Danke für deinen Tipp, tut mir leid habe ich vergessen in der Hitze des Gefechts.

Hier der Link : http://www.file-upload.net/download-3187660/Daten1.5.5c---Kopie.xls.html

Gruss
Raffi83
0 Punkte
Beantwortet von raffi83 Einsteiger_in (29 Punkte)
Hallo zusammen
Habe eine Lösung für mein altes Problem gefunden. Nun ein neues.
Vieleicht kann mir jemand helfen!

Habe nun mit der Datei einige Zeit gearbeitet und gemerkt das es noch gut währe wenn man einen Hyperlink eintragen könnte. Habe das auch Probiert leider bin ich nicht ganz zum Ziel gekommen. Habe noch ein Userform hinzugefügt. Leider gelingt es mir nicht den Eintrag den ich mit dem Textfeld TSB.Nr im UserForm NeuerEintrag gemacht habe anzusteuern. Hast Du mir einen Tipp wie ich das Anstellen soll?
Weiter möchte ich im letzten Benachrichtigungsfenster des Skript's noch den Bereich in dem der Eintrag in das Tabellenblatt gemacht wurde mit dem Bereichsnamen ergänzen. leider mit meiner Methode habe ich nur komische Zeichen und nicht den Bereichsnahmen.

Hier gehts zur Datei:
http://www.file-upload.net/download-3210858/Daten2.0.4.xls.html

Danke und guten Tag
...