• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Voorraadlijst DMV Macro Excel

Status
Niet open voor verdere reacties.

RoyGeraets

Gebruiker
Lid geworden
15 mrt 2011
Berichten
41
Hallo,

Ik heb een vraagje over het maken van Macro's in excel.
Bijgevoegd het bestand waar het over gaat.

Blad1 is een voorraadlijst

Blad2 is Nog geen bestellijst

Graag zou ik van blad1 een Willekeurige rij kopieren, ligt er aan wat er besteld is.
EN dat ik dan als ik deze rij geselecteerd heb dat ik dan op een Knop klik DMV een Macro,
Dat dan die rij gekopieerd wordt naar Blad2 en dat de rijen daar onder elkaar komen te staan.

Ik hoop dat dit duidelijk genoeg is. Zo niet hoor ik het graag.

Alvast bedankt voor de hulp.

Bekijk bijlage prijslijst 2012 - 1.xlsx
 
dat is een flinke artikellijst :)

de oplossing dus maar even via mijn bestand.nl geupload

http://www.mijnbestand.nl/Bestand-NLY4OXXGMU3P.xlsm

Met onderstaande macro in het vba programmacodeblad van blad1(Prijslijst) kun je door dubbelklikken op de gewenste regel kun je die kopieren naar de bestellijst, de regel krijgt ook een kleurtje zodat je weet dat deze op een bestellijst staat.

voor het voorbeeld heb ik aan het eind een messagebox toegevoegd die zegt welk artikel is toegevoegd aan de bestellijst. Maar ik kan me voorstellen dat je die code regel weglaat in de definitieve versie (zonder msgbox werkt uiteraard sneller)

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If targetcolumn < 6 Then
    Range("A" & Target.Row, "E" & Target.Row).Copy Blad2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    Range("A" & Target.Row, "E" & Target.Row).Interior.Color = RGB(75, 192, 198)
End If

Cancel = True
MsgBox "Artikel " & Range("A" & Target.Row).Value & " " & Range("B" & Target.Row).Value & " toegevoegd aan bestellijst"

End Sub

Verder een macro BestellijstLegen() gemaakt, die blad2 weer leegmaakt en de gekleurde regels uit blad1 weer ontkleurt.

Code:
Sub BestellijstLegen()
Application.ScreenUpdating = False
srtSh = ActiveSheet.Name

Blad2.Activate

If Range("A2") <> "" Then
    Blad2.Range("A2", Range("E" & Rows.Count).End(xlUp)).Clear
    Blad1.Activate
    Blad1.Range("A3", Range("E" & Rows.Count).End(xlUp)).Interior.ColorIndex = xlNone
End If

Sheets(srtSh).Activate

End Sub

Verder heb ik als extra nog textboxen toegevoegd boven de kolommen waardoor je snel de lange lijst met artikelen kunt doorzoeken.
 
@ Roel
Zo werkt hij beter want anders kan je eender welke kolom klikken en de macro wordt gestart
Ook de msgbox verplaatst anders altijd verschijnend, ook als er niets gekopieërd wordt.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If [COLOR="#FF0000"]Target.Column[/COLOR] < 6 Then
        With Range("A" & Target.Row).Resize(, 5)
            .Copy Blad2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
            .Interior.Color = RGB(75, 192, 198)
        End With
        MsgBox "Artikel " & Range("A" & Target.Row).Value & " " & Range("B" & Target.Row).Value & " toegevoegd aan bestellijst"
    End If
    Cancel = True
End Sub
 
Arghh 1 kleine punt maakt veel veschil ja.. thanks voor de correctie..
 
Laatst bewerkt door een moderator:
Woow Jongens Super bedankt, Dit werkt Gewoonweg Perfect.
En hier heb ik zo lang over zitten piekeren met mijn CTRL C >>> CTRL V.
Haha.

Zwaar bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan