Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel2007]Lijst met producten aanvullen met codes

Pagina: 1
Acties:

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 23:20
Ik heb een lijst met producten (15000+) en daar moet in een kolom een code toegevoegd worden. Het volgende moet gebeuren:
Blad 1: Lijst met toe te voegen codes (code 1 tm 10)
Blad 2: Lijst met producten (15000+)
Blad 3: Resultaat: Lijst + code1, lijst + code2 etc, allemaal onder elkaar.

Ik ben al tijden aan het klooien om dit te automatiseren, maar heb geen idee hoe ik dit zou kunnen doen. Ik moet dit bestand (helaas) iedere maand maken en kopieer nu iedere keer de lijst, pas kolom aan, kopieer weer, pas kolom aan etc. Veel werk dus...

Kan dit anders? Ik zat al te kijken naar een geneste ALS, maar dan krijg je niet gekopieerd. VBA ken ik helaas ook niet, dus daarin blind aan de slag gaan is ook geen optie. Iemand een idee?

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 21-11 16:28
Hoe bepaal je dan welke code bij welk product moet worden bijgeschreven?

The best thing about UDP jokes is that I don't care if you get them or not.


  • jjust
  • Registratie: April 2005
  • Laatst online: 07:38

jjust

Het leven is een strijd

Als ik het goed begrijp wil je 1 lange lijst met producten + code 1 en daaronder weer de lijst producten maar dan met code 2 enz

Wat je kan doen is & gebruiken. Dus C1 = A1&B1 of als er een spatie tussen moet A1&""&B1.

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 23:20
Uiteindelijk toch in VBA gaan zoeken. Ik ben nu een heel eind. Hij loopt het hele bestand langs, maar op de een of andere manier overschrijft hij alles weer.
code:
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
Sub AanvullenAchmea()
'
' AanvullenAchmea Macro
' Maandelijks prijsbestand genereren op basis van nieuwe AGP Achmea
'
' Sneltoets: CTRL+SHIFT+A
'
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Uzovi"
    ActiveSheet.Cells(1, 1) = 3311
    ActiveSheet.Cells(2, 1) = 3313
    ActiveSheet.Cells(3, 1) = 3314
    ActiveSheet.Cells(4, 1) = 3329
    ActiveSheet.Cells(5, 1) = 3337
    ActiveSheet.Cells(6, 1) = 211
    ActiveSheet.Cells(7, 1) = 8960
    ActiveSheet.Cells(8, 1) = 8971
    ActiveSheet.Cells(9, 1) = 8956
    ActiveSheet.Cells(10, 1) = 8966
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "PRIJS"
    ActiveSheet.Previous.Select
    ActiveSheet.Previous.Select
    u = 1
    Do While ActiveWorkbook.Worksheets("Uzovi").Cells(u, 1).Value <> ""
        x = 5
        Do While Cells(x, 1).Value <> ""
            y = x - 4
            ActiveWorkbook.Worksheets("PRIJS").Cells(y, 1).Value = "PRIJS"
            ActiveWorkbook.Worksheets("PRIJS").Cells(y, 2) = ActiveWorkbook.Worksheets("Uzovi").Cells(u, 1).Value
            ActiveWorkbook.Worksheets("PRIJS").Cells(y, 3) = "Z"
            ActiveWorkbook.Worksheets("PRIJS").Cells(y, 4).Value = Cells(x, 1).Value
            ActiveWorkbook.Worksheets("PRIJS").Cells(y, 5).Value = Cells(x, 4).Value
            ActiveWorkbook.Worksheets("PRIJS").Cells(y, 6).Value = Cells(x, 3).Value
            ActiveWorkbook.Worksheets("PRIJS").Cells(y, 10).Value = 20130801
            x = x + 1
        Loop
        u = u + 1
    Loop
    Sheets("PRIJS").Activate
    Columns("E:E").Select
    Selection.NumberFormat = "0.00"
End Sub

Op zich redelijk logisch natuurlijk, want x wordt opnieuw gedefinieerd om de lijst opnieuw door te lopen. Hierdoor krijg je y ook weer opnieuw vanaf 1. Met als gevolg dat ie overschreven wordt. Alleen krijg ik niet beredeneerd hoe ik verder kan laten gaan vanaf het eind. Hopelijk kan iemand me de gouden tip geven.

Opgelost: Even pauze genomen en even na gaan denken... Ik heb y nu niet meer afhankelijk gemaakt van x, maar uit de loop gehaald. Aan het einde y+1 doen en dan blijft ie natuurlijk wel doortellen. _/-\o_ Het leven kan simpel zijn :D

[ Voor 5% gewijzigd door Paultje3181 op 25-07-2013 14:35 ]