Toon posts:

Bestelformulier, gegevens kopiëren van sheets (VBA/Excel)

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo iedereen,

Recent ben ik begonnen met het onder de knie krijgen van excel i.c.m. VBA (weekje of twee). Ik probeer een bestelformulier op te stellen, met op de eerste sheet het "bestellformular". En op de andere sheets de categorieën waarin producten te bestellen zijn. Per tab/categorie kan men achter het product aangeven hoe vaak zij deze wensen te ontvangen. Wanneer men dan terug naar het bestelformulier gaat en dan op de knop "updaten formulier" drukt, had ik graag dat alle producten waar een aantal bij is aangegeven gekopieerd wordt naar de sheet "bestellformular".

Momenteel is dit mijn VBA code
Mijn excuses als het wat rommelig oogt/is.

code: filename
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Private Sub CommandButton1_Click()
Dim LastRow As Long
   Dim i As Long, j As Long

   'Find the last used row in a Column: column A in this example
   With Worksheets("Übriger")
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
   End With
   
   With Worksheets("Darmbakterien")
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
   End With
   
   With Worksheets("Intestinum aufbauschutz")
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
   End With
   
   With Worksheets("Verdauungsenzyme")
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
   End With
   
   With Worksheets("Leber Entgiftung Dysbiose Infla")
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
   End With
   
   With Worksheets("Stress regulierung vitamin b km")
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
   End With
   
   With Worksheets("Mineralien")
     LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
   End With

   'first row number where you need to paste values in Sheet1'
   With Worksheets("Bestellformular")
      j = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
   End With
    
    
   For i = 2 To LastRow
       With Worksheets("Übriger")
           If .Cells(i, 11).Value >= 1 Then
               .Rows(i).Copy Destination:=Worksheets("Bestellformular").Range("A" & j)
               j = j + 1
           End If
       End With
       
        With Worksheets("Darmbakterien")
           If .Cells(i, 11).Value >= 1 Then
               .Rows(i).Copy Destination:=Worksheets("Bestellformular").Range("A" & j)
               j = j + 1
           End If
       End With
       
       With Worksheets("Intestinum aufbauschutz")
           If .Cells(i, 11).Value >= 1 Then
               .Rows(i).Copy Destination:=Worksheets("Bestellformular").Range("A" & j)
               j = j + 1
           End If
       End With

     With Worksheets("Verdauungsenzyme")
           If .Cells(i, 11).Value >= 1 Then
               .Rows(i).Copy Destination:=Worksheets("Bestellformular").Range("A" & j)
               j = j + 1
           End If
       End With

     With Worksheets("Leber Entgiftung Dysbiose Infla")
           If .Cells(i, 11).Value >= 1 Then
               .Rows(i).Copy Destination:=Worksheets("Bestellformular").Range("A" & j)
               j = j + 1
           End If
       End With

     With Worksheets("Stress regulierung vitamin b km")
           If .Cells(i, 11).Value >= 1 Then
               .Rows(i).Copy Destination:=Worksheets("Bestellformular").Range("A" & j)
               j = j + 1
           End If
       End With

     With Worksheets("Mineralien")
           If .Cells(i, 11).Value >= 1 Then
               .Rows(i).Copy Destination:=Worksheets("Bestellformular").Range("A" & j)
               j = j + 1
           End If
       End With
       
   Next i

End Sub


Het probleem: hij kiest artikelen en kopieert die naar de eerste sheet, weliswaar alleen artikelen met een aantal erachter. Maar hij pakt van de ene sheet 2 artikelen, terwijl er bij 4 een aantal staan en bij de andere sheet geen artikelen terwijl er achter 3 een aantal staat. Hij pakt wel telkens dezelfde artikelen.

Is er iemand die ziet wat ik fout heb gedaan?

Bvd _/-\o_

Eva

Alle reacties


Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 12-10 22:16
@Verwijderd Er gaat sowieso iets mis met de variabele LastRow...
die bepaal je nu 7x, maar in de loop wordt natuurlijk alleen de laatste gebruikt! De oude LastRow wordt steeds overschreven!