Gegevens omzetten van naam/project naar project/naam

Status
Niet open voor verdere reacties.

Moche56

Gebruiker
Lid geworden
3 aug 2013
Berichten
58
Hallo,

Ik heb een bestand (bijgevoerd) waarbij de eerste tabblad "Basis" gegevens automatisch ververst.
De gegevens worden gesorteerd met Namen (in meerdere kolommen) per Project.
In de tweede tabblad "Uitwerking" wil ik de gegevens omzetten naar Project per Naam.
Ik kan mezelf redelijk reden met formules maar hier kan ik na dagen (weken) van zoeken niet uitkomen.
Daarom mijn vraag om hulp aan dit Forum voor een mogelijk oplossing via VBA.
Ik kan een beetje omgaan met VBA maar niet voldoende om een macro als die te maken :-(

Ik hoop dat ik geholpen kan worden.

Alvast bedankt

Moché.c
 

Bijlagen

  • Test omzetten.xlsx
    9,8 KB · Weergaven: 22
Gaat ook prima zonder VBA. Probeer het eens met Power Query.

En anders bv zo
Code:
Sub VenA()
  ReDim ar1(1, 0)
  ar = Sheets("Basis").Cells(1).CurrentRegion
  For j = 2 To UBound(ar)
    For jj = 2 To UBound(ar, 2)
      If ar(j, jj) <> "" Then
        ar1(0, t) = ar(j, 1)
        ar1(1, t) = ar(j, jj)
        t = t + 1
        ReDim Preserve ar1(1, t)
      End If
    Next jj
  Next j
  Sheets("Uitwerking").Cells(2, 10).Resize(t, 2) = Application.Transpose(ar1)
End Sub
 

Bijlagen

  • Test omzetten.xlsx
    19,7 KB · Weergaven: 23
Laatst bewerkt:
Beste VenA

Bedankt voor de geboden oplossing en de snelle reactie.
Ik heb Excel 2016 en moet mezelf verdiepen in Power BI, in Excel 2016 is dat Ophalen en transformeren.
De VBA oplossing lijkt mij goed te werken.
Met een paar aanpassingen (sorteren op naam) moet ik er uitkomen, denk ik.

Nogmaals dank en fijne avond

Moché.c
 
Criteria toevoeging

Beste VenA,

Is het mogelijk de VBA code uit te breiden met een Criteria waarbij:
De rijen met "Go" en "Wacht" meegenomen worden
De rijen met "Klaar" genegeerd worden

Gisteren dacht ik dat mijn vraag volledig was maar toch niet :)
Ik ben sowieso al goed geholpen.

Alvast bedankt

Moché.c
 

Bijlagen

  • Test omzetten met criteria.xlsx
    15,5 KB · Weergaven: 17
Als je VBA gebruikt dan kan je het bestand beter opslaan als .xlxm of .xlsb. Anders moet je de code er elke keer opnieuw inzetten.

Code:
For jj = 2 To UBound(ar, 2)[COLOR="#FF0000"] - 1[/COLOR]
      If ar(j, jj) <> "" [COLOR="#FF0000"]And LCase(ar(j, UBound(ar, 2))) <> "klaar" Then[/COLOR]
 
Goedemiddag snb

Dank voor de correctie.
met een Franse achtergrond ben ik altijd bereid te leren :thumb:

Grt, Moché.c
 
Bedankt VenA

Wederom goed geholpen.
Nogmaals dank.

Ik had gisteren het bestand omgezet naar xlsm. Dank voor de tip.

Grt, Moché.c
 
Beste VenA

Ik dacht verder mijn probleem te kunnen uitwerken maar ik merk dat de macroformule het hele array doorloopt.
In werkelijkheid zijn de kolommen niet aangrenzend. Alleen de eerste kolom en de geel gemerkt kolommen zijn bepalend
Is het eenvoudig te verhelpen?

Ik vind het wel vervelend maar zou u hulp op prijs stellen.

Grt, Moché.c
 

Bijlagen

  • Test omzetten Criteria 1.0.xlsm
    21,6 KB · Weergaven: 13
Ja hoor. En dat kan je prima zelf. Bij steeds wisselende voorbeelden ga ik het niet doen. Probeer de code te begrijpen door er stap voor stap doorheen te lopen met <F8> in de editor.
 
Hallo,

Na veel pogingen lukt het niet om de specifieke kolommen (geel gemerkt) te selecteren binnen de VBA code.
Het betreft de laatste geüpload Excel bestand.
Is er iemand die daarmee kan helpen?
Mijn dank zou groot zijn :d

Grt, Moché.c
 
Wat lukt er niet dan?

Hier ergens iets in aangepast?
Code:
For jj = 2 To
 
Hallo VenA,

Niets aangepast.
In het Excel bestand wil ik alleen de informatie van de geel gemerkt kolommen (hieronder onderstreept) overnemen.
De overige niet.
Ik heb in de code elke regel doorgenomen maar kan geen selectie maken van de gewenste kolommen.
Project Extra 1 Extra 2 Extra 4 Extra 6 Naam 1 Naam 2 Naam 3 Crit1 crit4 Crit6 Criteria

Hulp is zeer gewenst.

Grt, Moché.c
 

Bijlagen

  • Test omzetten Criteria 1.0.xlsm
    20,3 KB · Weergaven: 15
De kolommen F,G en H zijn de kolommen 6,7 en 8

Dus for jj = 6 to 8

Code:
Sub VenA()
  ReDim ar1(1, 0)
  ar = Sheets("Basis").Cells(1).CurrentRegion
  For j = 2 To UBound(ar)
    For jj = 6 To 8
      If ar(j, jj) <> "" And LCase(ar(j, UBound(ar, 2))) <> "klaar" Then
        ar1(0, t) = ar(j, jj)
        ar1(1, t) = ar(j, 1)
        t = t + 1
        ReDim Preserve ar1(1, t)
      End If
    Next jj
  Next j
  With Sheets("Uitwerking")
    .Cells(2, 10).Resize(t, 2) = Application.Transpose(ar1)
    .Cells(1, 10).CurrentRegion.Sort .Cells(1, 10), , , , , , , xlYes
  End With
'Call Macro2

End Sub
 
Met een genormaliseerde tabel volstaat 1 draaitabel.
 

Bijlagen

  • __Criteria_snb.xlsb
    18 KB · Weergaven: 17
Beste VenA

Hartelijk dank hiervoor.
En inclusief sorteren op naam. Dank daarvoor.

Vragen voor mijn beeldvorming en kennis:

  • Standaard de eerste kolom voor de controle?
    Controle op "Klaar" in de laatste kolom?
    En zoals u aangeeft "For jj - 6 to 8" voor het aantal kolommen met namen

Ik ben er erg blij mee.

Grt, Moché.c
 
Met een genormaliseerde tabel volstaat 1 draaitabel.

Beste snb,

Dank voor het meedenken.
Een draaitabel zou voldoen als de namen in een kolom waren opgeslagen.
Voor sommige projecten zijn 2 tot 3 namen opgenomen in 3 kolommen waardoor de complexiteit.

grt, Moché.c
 
Zorg er dus voor dat je uitgangsmateriaal goed is: een genormaliseerde tabel.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan