VBA und Excel- In nächste Zeile springen und schreiben

Myar

Mitglied
Hallöchen!

Also vornweg, wahrscheinlich etwas wovor es jedem hier graust:
Ich habe noch nie in VB oder VBA Programmiert.
Jetzt gibt es aber nen problem und ich muss schnell nen kleines VBA/Excel Progrämmchen basteln.
Also hab ich mich sehr schnell eingelesen. Doch stehe ich vor nem Problem, wo ich nicht weiterkomme.

Wenn ich die Excel Mappe öffne, kann ich Start klicken und ein Fensterchen erscheint, welches mit fünf Textfeldern fünf Werte abfragt (unter anderem IP Adressen und Ports).
Wenn man auf weiter klickt, werden diese Werte in Zellen eingetragen, andere Zellen übernehmen diese Werte und basteln daraus Firewallregeln.
So, diese generierte Regel soll im selben Zug in ein drittes Blatt geschrieben werden, damit dieses Tabellenblatt später ausgedruckt werden kann.
bis hierhin klappt alles, nur wenn ich halt weiter klicke, schreibt er auf Tabellenblatt "Regeln" in die Zellen A1 bis E1 brav die Werte aus dem vorherigen Tabellenblatt, das Fenster bleibt aber auf und man hat so lange die Möglichkeit, Namen, IPs und Ports einzugeben, bis man Ende klickt.
Das heißt, jedesmal wenn man einen Durchgang vollendet hat und weiter klickt, wird eine Regel generiert, aber diese muss dann im Tabellenblatt "Regeln" in die nächste Zeile (also in die Zellen A2 bis E2) geschrieben werden und so weiter.

Dies ist also der Code, der sich dann hinter dem Button "weiter" verbrigt:

Code:
Option Explicit

Dim mVariZahl As Double
Dim zaehler As Integer


Private Sub Weiter_Click()
    zaehler = zaehler + 1
   
    Worksheets(2).Select
    Range("A2").Value = Instanz
    
    Worksheets(2).Select
    Range("B1").Value = SID
    
    mVariZahl = Val(InzNr.Text)
    Worksheets(2).Select
    Range("C2").Value = mVariZahl
    
    Worksheets(2).Select
    Range("D2").Value = IP
    
    mVariZahl = Val(IPHTTP.Text)
    Worksheets(2).Select
    Range("E2").Value = mVariZahl 'IPHTTP
    
    mVariZahl = Val(IPHTTPS.Text)
    Worksheets(2).Select
    Range("F2").Value = mVariZahl 'IPHTTPS
    
    If Sam = True Then
        Worksheets(2).Select
        Range("G2").Value = "X"
    Else
        Worksheets(2).Select
        Range("G2").Value = ""
    End If
    
    Worksheets("Prozess").Range("A18:E18").Copy
    Worksheets("Regeln").Select
    Range("A1:E1").PasteSpecial Paste:=xlValues

    
End Sub

Der Zähler wird hochgezählt, da ich mir gedacht habe, dass damit später geschaut werden soll, ob man in die nächste Zeile muss.

So, hier ist Ende, weiß ich nicht weiter, da ich absolut keine Ahnung von VBA Syntax/Excel Möglichkeiten in diesem Bereich habe.
Ich hoffe mir kann geholfen werden...

Gruß
Myar
 
Eigentlich brauchst du wenn ich das richtig verstanden habe nur die letzte Zeile zu ändern. Aus
Visual Basic:
Range("A1:E1").PasteSpecial Paste:=xlValues

musst du nur

Visual Basic:
Range("A" & zaehler &":E" & zaehler).PasteSpecial Paste:=xlValues

machen.

Grüsse bb
 
Hallöchen!

Vielen Dank für deinen Hinweis, funktioniert wunderbar! Danke!

Ein Problemchen hät ich noch, dieses Tabellenblatt "Regeln" möchte ich gerne (auf Wunsch) als Textdatei speichern.
Also man wird gefragt "Ergebnis als Textdatei speichern?" Wenn man nein klickt schließt das fenster, wenn man ja klickt öffnet sich ein fenster zum Speichern (also dass man Speicherort und Dateiname eingeben kann).
Das Fenster für diese Auswhal ist schon da( ja/nein) nur beim Klicken auf Ja passiert noch nichts ;)

Gruß
Myar
 
Zuletzt bearbeitet:
Zurück