Excel VBA - Variabele waarde Inputbox gebruiken als invulwaarde in een bepaalde cel

Status
Niet open voor verdere reacties.

Kirsten1712

Gebruiker
Lid geworden
11 jan 2017
Berichten
28
Hallo

Ik ben al een tijd aan het zoeken naar een oplossing hiervoor, maar aangezien ik er weinig van ken, vrees ik dat ik hulp nodig heb..

Bedoeling van de sheet is dat de macro getriggerd wordt adhv een bepaalde waarde die wordt ingegeven. So far so good. Wanneer de inputbox dan verschijnt en er een aantal wordt ingegeven, zou dat aantal in een andere kolom op dezelfde rijhoogte moeten verschijnen.

Voorbeeld: In A2 wordt er "15117" ingegeven, dat triggert de macro. De inputbox verschijnt en er wordt gevraagd naar het aantal. Het aantal dat wordt ingegeven moet in G2 komen te staan. Gebeurt hetzelfde in A12, moet dat in G12 komen enz..

Hieronder de code die ik voorlopig heb en ook doet wat hij moet doen, bij deze ook een voorbeeldbestand. Bekijk bijlage msgbox met versch opties nav wat nodig2.xlsm

Alvast bedankt!!


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = 15117 Then

Call InsertsNeeded
Call TopNeeded
Call BottomNeeded

End If
End Sub

Sub InsertsNeeded()
Dim AantalInserts As Variant
AantalInserts = Inputbox("Hoeveel inserts zijn er nodig?")

If AantalInserts > 0 Then
Call JumpAndAddInserts

End If
End Sub

Sub TopNeeded()
Dim AantalTops As Variant
AantalTops = Inputbox("Hoeveel top foams zijn er nodig?")

If AantalTops > 0 Then
Call JumpAndAddTops

End If
End Sub

Sub BottomNeeded()
Dim AantalBottoms As Variant
AantalBottoms = Inputbox("Hoeveel bottom foams zijn er nodig?")

If AantalBottoms > 0 Then
Call JumpAndAddBottoms

End If
End Sub

Sub JumpAndAddInserts()
Range("a1").End(xlDown).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "15118"
End Sub

Sub JumpAndAddTops()
Range("a1").End(xlDown).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "15119"
End Sub

Sub JumpAndAddBottoms()
Range("a1").End(xlDown).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "15120"
End Sub
 
En dan te bedenken dat het in één macro kan...
Dim AantalInserts As Long, AantalTops As Long, AantalBottoms As Long
Code:
    If Target = 15117 Then
        AantalInserts = Inputbox("Hoeveel inserts zijn er nodig?")
        If AantalInserts > 0 Then
            Range("a1").End(xlDown).Offset(0, 6).Value = AantalInserts
            Range("a1").End(xlDown).Offset(1, 0).Value = "15118"
            AantalTops = Inputbox("Hoeveel top foams zijn er nodig?")
            If AantalTops > 0 Then
                Range("a1").End(xlDown).Offset(0, 6).Value = AantalTops
                Range("a1").End(xlDown).Offset(1, 0).Value = "15119"
                AantalBottoms = Inputbox("Hoeveel bottom foams zijn er nodig?")
                If AantalBottoms > 0 Then
                    Range("a1").End(xlDown).Offset(0, 6).Value = AantalBottoms
                    Range("a1").End(xlDown).Offset(1, 0).Value = "15120"
                End If
            End If
        End If
    End If
 
@ gast0660, bedankt! Dat is exact wat ik zocht!
Om mijn uitleg even te verduidelijken: 15117 is de code van het karton, 15118 is de code van de insert die bij het karton hoort, 15119 die van de tops, 15120 die van de bottoms enz..

@ OctaFish, jouw code ziet er een pak professioneler uit, maar daar ga ik me wat langer mee moeten bezig houden om deze volledig te begrijpen. Dit was voor mij de eerste keer dat ik me aan macro's waagde.. In ieder geval ook heel erg bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan