• 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.

Eerstvolgende waarde in een kolom

Status
Niet open voor verdere reacties.

Johannie06

Gebruiker
Lid geworden
6 sep 2016
Berichten
5
Goedemiddag,

Ik heb een bestand waarbij ik een kolom heb, waarbij niet in elke cel een waarde staat. In het volgende tabblad wil ik echter een opsomming van de kolommen waar wel een waarde in staat. In de bijlage vind je een voorbeeld. Blad 1 is mijn "totaaloverzicht" en in blad 2 zie je dan een samenvatting per kolom, waarna ik door blad 2 af te drukken, direct A t/m F op een aparte pagina krijg.

Kan iemand mij helpen met een formule waarbij ik alleen de cellen meeneem waar een waarde in staat?

Ik vond wel dit topic: http://www.helpmij.nl/forum/showthread.php/344635-eerste-gevonden-waarde-in-een-rij Maar ik krijg de formule niet omgebouwd naar een kolom.

Alvast bedankt voor de reactie(s)!

Bekijk bijlage Voorbeeld Helpmij.nl.xlsx
 
Lijkt dit erop?
 

Bijlagen

Andere variant (matrixformule):
Code:
ALS.FOUT(KLEINSTE(ALS(RIJ($A$1:$A$500)>VERGELIJKEN(B$1;Blad2!$A$1:$A$500;0);ALS(RIJ($A$1:$A$500)<ALS.FOUT(VERGELIJKEN(C$1;Blad2!$A$1:$A$500;0);500);ALS(ISGETAL(VERGELIJKEN(Blad2!$B$1:$B$500;$A2;0));Blad2!$A$1:$A$500)));1);"")
 
Iets minder constructief maar obv de logica? die in het blad zit.

Code:
=IFERROR(INDEX(OFFSET(Blad2!$A$1;(CODE(B$1)-65)*50;;50);MATCH($A2;OFFSET(Blad2!$B$1;(CODE(B$1)-65)*50;;50);0));"")
 

Bijlagen

Goedemorgen, bedankt voor de reacties. Ik denk dat ik de vraag niet helemaal duidelijk gesteld heb. Ik wil juist het omgedraaide creëren. Blad 1 is mijn startpunt, dat vul ik in. En dan wil ik op blad 2 een samenvatting per kolom. Waarbij ik elke kolom op een nieuwe pagina af wil drukken.
 
Laat onderstaande macro eens draaien (resultaat op Blad3).
Code:
Sub hsv()
Dim sn, arr, i As Long, j As Long, n As Long, x As Long
sn = Sheets(1).Cells(1).CurrentRegion
ReDim arr(UBound(sn, 2) * 50, 2)
 For j = 2 To UBound(sn, 2)
   For i = 2 To UBound(sn)
     If arr(n, 0) = "" Then
        arr(n, 0) = sn(1, j)
     ElseIf sn(i, j) <> "" Then
        n = n + 1
        arr(n, 0) = sn(i, j)
        arr(n, 1) = sn(i, 1)
        x = x + 1
     End If
   Next i
 n = n + 50 - x
 x = 0
Next j
Sheets(3).Cells(1).Resize(UBound(arr), 2) = arr
End Sub

Ps. ik ga er van uit dat Hpagebreak elke 50 rijen is.

Tweede code is alles onder elkaar met een aangemaakte pagebreak (zie afdrukvoorbeeld).
Code:
Sub hsv()
Dim sn, arr, i As Long, j As Long, n As Long
sn = Sheets(1).Cells(1).CurrentRegion
ReDim arr(UBound(sn) * UBound(sn, 2), 2)
 With Sheets(3)
   .Cells.SpecialCells(12).PageBreak = xlNone
      For j = 2 To UBound(sn, 2)
        If Application.Count(Sheets(1).Columns(j)) > 0 Then
          arr(n, 0) = sn(1, j)
        For i = 2 To UBound(sn)
          If sn(i, j) <> "" Then
            arr(n + 1, 0) = sn(i, j)
            arr(n + 1, 1) = sn(i, 1)
            n = n + 1
           End If
        Next i
        n = n + 1
        .HPageBreaks.Add Cells(n + 1, 1)
     End If
    Next j
  .Cells(1).Resize(UBound(arr), 2) = arr
End With
End Sub
 
Laatst bewerkt:
Helemaal top! HSV bedankt!

Ik had mij nooit echt verdiept in Macro's maar daar kan je een hoop mee! Super!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan