Manipuler des donnéesexcel (décallage vers le bas + transposer)

Manipuler des donnéesexcel (décallage vers le bas + transposer) - VB/VBA/VBS - Programmation

Marsh Posté le 16-05-2009 à 08:57:32    

Bonjour,
 
pourriez vous m'aider.
 
J'aimerais transformer ce tableau:
 
http://www.sartor.be/hbgm/tableau1.png
 
en ça:
http://www.sartor.be/hbgm/tableau2.png
 
Par ailleurs si les vides peuvent être comblés par les cellules du dessus (info, titre) ce serait parfait.
 
Avez vous des conseils à me donner?
Merci


Message édité par Yellow-Sky le 16-05-2009 à 09:17:10
Reply

Marsh Posté le 16-05-2009 à 08:57:32   

Reply

Marsh Posté le 16-05-2009 à 11:35:50    

Salut, cela devrait fonctionner , il y a peut-être plus simple


Option Explicit
 
Sub Tst()
Dim LastRow As Long, i As Long
Dim LastCol As Long, k As Long
 
    LastRow = ShDepart.Range("A" & Rows.Count).End(xlUp).Row
    ShFinal.Cells.Clear
    Application.ScreenUpdating = False
    k = 1
 
    For i = 1 To LastRow
        LastCol = ShDepart.Range("IV" & i).End(xlToLeft).Column
        ShDepart.Range("A" & i & ":B" & i).Copy ShFinal.Range("A" & k & ":B" & k + LastCol - 3)
 
        ShDepart.Range("C" & i & ":" & NumCol2Lettre(LastCol) & i).Copy
        ShFinal.Range("C" & k).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
 
        k = ShFinal.Range("C" & Rows.Count).End(xlUp).Row + 1
    Next i
    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
    End With
    ShFinal.Activate
End Sub
 
Private Function NumCol2Lettre(ByVal NumCol As Long) As String
Dim i As Long, x As Long, s As String
    For i = 6 To 0 Step -1
        x = (26 ^ (i + 1) - 1) / 25 - 1
        If NumCol > x Then
            s = s & Chr(((NumCol - x - 1) \ 26 ^ i) Mod 26 + 65)
        End If
    Next i
    NumCol2Lettre = s
End Function


Message édité par kiki29 le 16-05-2009 à 11:43:54
Reply

Marsh Posté le 16-05-2009 à 13:42:44    

Merci mais ça me donne une erreur de compilation: variable non définie.
 
Je vais voir ce que je peux faire...

Reply

Marsh Posté le 16-05-2009 à 15:18:51    

Salut, voir la copie d'écran http://cjoint.com/?fqpqUNJweU
et par la même occasion se renseigner sur CodeName http://www.ozgrid.com/VBA/excel-vba-sheet-names.htm

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed