Seite 2 von 2 ErsteErste 1 2
Ergebnis 11 bis 14 von 14

Thema: Vor Start des Makros alle Werte in Spalte A Tabelle2 löschen (Office 2016)

  1. #11
    Office-Hilfe.com - Neuling
    Registriert seit
    12.06.2019
    Beiträge
    13
    Ja das schon, ich weiß aber nicht wie ich die beiden Eingaben in VBA richtig zuordnen kann.

    Ich habe so was probiert:
    Code:
    Sub Wiederholen()
    Worksheets("Tabelle2").Columns(1).ClearContents
    Dim lAnzahl As String
    Dim i As Long
    Anf:
    lAnzahl = Application.InputBox("Wieviele Aktien sollen kombiniert werden?", , Range("Z1").Value, , , , , 1) '<== lässt nur Zahleneingaben zu
            Range("Z1") = lAnzahl
        lAnzahl = InputBox("Wie oft soll das Makro laufen ?", , 3)
        ' Prüfen ob eine Zahl eingegeben wurde
        If IsNumeric(lAnzahl) Then
            For i = 1 To CLng(lAnzahl)
                FormulaR1C1 = "=RANDBETWEEN(2,19)"
                    Range("AA2").Select
                With Sheets("Tabelle2")
                    lastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
                    .Cells(lastRow, 1) = Range("X3")
                End With
            Next i
        Else
            MsgBox "Bitte eine Zahl eingeben !", vbInformation
            GoTo Anf
        End If
    End Sub
    Es kommt hier auch zweimal eine Abfrage allerdigs wiederholt sich das Makro hier nicht. (Nach der eingegebenen Zahl)
    Geändert von popoff (25.06.2019 um 20:13 Uhr)

  2. #12
    Office-Hilfe.com - Legende
    Registriert seit
    26.08.2009
    Ort
    Bergstadt Freiberg/Sa.
    Beiträge
    2.813
    Wie ich schon geschrieben hatte: du brauchst 2 getrennte Abfragen wenn du kein Userform mit 2 TextBoxen verwenden willst:

    Code:
    Sub Wiederholen()
        Dim lAnzahl As Long
        Dim lngAktien As Long
        Dim i As Long
        lngAktien = Application.InputBox("Wieviele Aktien sollen kombiniert werden?", , Range("Z1").Value, , , , , 1)
        If lngAktien > 0 Then
            lAnzahl = Application.InputBox("Wie oft soll das Makro laufen?", , 1, , , , , 1)
            If lAnzahl > 0 Then
                Range("Z1") = lngAktien
                With Worksheets("Tabelle2")
                    .Columns(1).ClearContents
                    For i = 1 To lAnzahl
                        lastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
                        .Cells(lastRow, 1) = Range("X3")
                    Next i
                End With
            End If
        End If
    End Sub

    Bis später,
    Karin
    Standard: Win 10, Office 2016
    Bei Bedarf auch Excel 97 - 2013

  3. #13
    Office-Hilfe.com - Neuling
    Registriert seit
    12.06.2019
    Beiträge
    13
    Ah perfekt. Jetzt klappt es.

    Ein Problem was mir ausgefallen ist:
    In den Spalten AA:AS wird ja mit dem Befehl
    Code:
    ZUFALLSBEREICH(2;19)
    Zufallszahlen von 2-19 generiert.
    Habe aber gemerkt dass sich hier die Zahlen oftmals wiederholen. Ich muss das Problem lösen damit sich keine Zahl zweimal vorkommt.

    Habe diese Lösung mit einer Hilfsspalte gelöst:

    Zelle AA1 :
    Code:
    =RANG(AA2;$AA$2:$AS$2)
    ZelleAA2 :
    Code:
    =ZUFALLSZAHL()
    Nur habe ich das Problem dass die Zahl 1 nicht vorkommen sollte. Es sollten nur Zahlen von 2-19 angezeigt werden.
    Hast du da einen Lösungsansatz?
    Angehängte Dateien Angehängte Dateien
    Geändert von popoff (26.06.2019 um 07:29 Uhr)

  4. #14
    Office-Hilfe.com - Legende
    Registriert seit
    26.08.2009
    Ort
    Bergstadt Freiberg/Sa.
    Beiträge
    2.813
    Dieses Formelproblem hat ja nichts mit dem anderen Problem in diesem Thread zu tun, deshalb solltest du dafür einen neuen Thread eröffnen.

    Bis später,
    Karin
    Standard: Win 10, Office 2016
    Bei Bedarf auch Excel 97 - 2013

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Excel Ticker - News, Tipps und Tricks zu Microsoft Excel | SMS kostenlos versenden | Forenuser - Die Foren Findmaschine