aantal kolommen varieert

Status
Niet open voor verdere reacties.

Goudvis1

Gebruiker
Lid geworden
7 jan 2010
Berichten
13
Goedemorgen,

Ik heb een bestand met in rij 1 verschillenmde namen en vanaf rij 2 verschillende waarden. Bij het updaten veranderen de namen en waarden steeds (het kunnen nieuwe namen zijn). Bijvoorbeeld in kolommen A1, B1, C1 etc. komen naam1, naam1, naam2 te staan en na updaten, naam 2, naam 3, naam 3. Van te voren weet ik niet hoeveel keer een naam voorkomt.
Ik wil de onderliggende waarden behorende bij de namen per rij optellen.

Het is lastig om uit te leggen wellicht dat het voorbeeldbestandje wat meer duidelijkheid geeft.

Ik hoop dat iemand mij hiermee kan helpen.Bekijk bijlage voorbeeld.xls
 
Middels een macrootje mbv een loop:

Code:
Sub tst()
Dim i As Integer, cel As Range, txt As String, bereik As Range
i = 7
txt = ""
    With Sheets("Sheet1")
    Set bereik = .Range(.Cells(1, 1), .Cells(1, .Cells(1, Columns.Count).End(xlToLeft).Column))
        For Each cel In bereik
            If InStr(1, txt, cel.Value) = 0 Then
                txt = txt & cel.Value
                .Cells(i, 1).Value = cel.Value
                .Cells(i, 2).Value = Application.WorksheetFunction.SumIf(bereik, cel.Value, bereik.Offset(1, 0))
                .Cells(i, 3).Value = Application.WorksheetFunction.SumIf(bereik, cel.Value, bereik.Offset(2, 0))
                i = i + 1
            End If
        Next cel
    End With
End Sub
 
Hoi Goudvis1,

Gebruik hiervoor transponeren, en een draaitabel.
dat gaat heel snel.

Voorbeeld:
In jouw voorbeeldbestand selecteer je "A1" t/m "K3"
Vervolgens open je een nieuw werkblad en kies je voor plakken speciaal, en vink je de optie "transponeren" aan. (De rijen en kolommen worden nu omgedraaid.)

voeg nu voor elke kolom een label in(rij invoegen bij rij 1)
en geef elke kolom een naam, bijvoorbeeld ("naam","label 1","label 2")

vervolgens selecteer je alle data, door je cursor ergens in de gegevens te plaatsen en op CTRL+A te drukken

Kies nu voor invoegen > draaitabel (excel 2007, ik kan hier niet precies zien waar dat staat in excel 2003 en eerder)
sleep "Naam" naar rijlabels, en "label1" en "label2" naar "(som) Waarden"

Dat is alles.

kijk in het voorbeeldbestandje naar het resultaat.Bekijk bijlage test1.xls
 
Nog een andere macro (variabel tot rij 13)
Code:
Sub tst()
Dim n As Variant, cel As Variant, tel1 As Variant, i As Variant, plaats As Variant, code As Variant
 If Range("A16") > 0 Then
 Sheets("sheet1").Range("A16:IU" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
 End If
 Sheets("Sheet2").Range("A1").Formula = "=CountA(Sheet1!A1:IU1)"
      n = Sheets("Sheet2").Range("A1").Value
     
    cel = "!@#&$"
     tel1 = 15
  
    For i = 0 To n
     
      plaats = Cells(1, i + 1).Value
         If plaats <> cel Then
           tel1 = tel1 + 1
            Cells(tel1, 1).Value = plaats
              cel = plaats
           End If
        For j = 13 To 2 Step -1
        If Cells(j, 1) <> "" Then
        code = Cells(j, i + 1)
       
       If Cells(tel1, 1).Value > 0 Then
      Cells(tel1, j).Value = code + Cells(tel1, j).Value
    End If
   End If
  Next j
  Next i
End Sub
 

Bijlagen

Ha mannen,
Helemaal super! Alle 3 de oplossingen werken perfect.
Bedankt voor jullie hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan