Bonjour,

J'ai un tableau que je souhaite redimensionner avec un nombre de lignes et de colonnes définis, en gardant la même mise en forme.

Mais quand j'effectue le code que j'ai écrit ci-dessous, il y a un problème : le tableau (zone) ne se redimensionne pas avec le nombre de lignes et de colonnes voulus.

Il m'a semblé en testant que la zone devient la dernière colonne du tableau et ne contient pas celles rajoutées (idem pour les lignes). Du coup, la variable "ColZone" ne change pas, et la boucle tourne à l'infini.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub DimTabloGen(Zone As Range, lig As Double, col As Double)
'Le tableau zone doit présenter les caractéristiques suivantes :
'col colonnes et 2xcol sous-colonnes, lig lignes + 2 lignes (titre + total)
    Dim LigZone As Integer, ColZone As Integer
    With Zone
        LigZone = .Rows.Count - 2
        ColZone = .Columns.Count / 2
 
        While lig <> LigZone And (LigZone > 1 Or (LigZone = 1 And lig > 1))
            If lig > LigZone Then
                .Rows(2).EntireRow.Copy
                .Rows(2).EntireRow.Insert Shift:=xlDown
            ElseIf lig < LigZone Then
                .Rows(2).EntireRow.Delete
            End If
            Zone.Select 'cette ligne sert aux tests
            LigZone = Zone.Rows.Count - 2
        Wend
 
        While col <> ColZone And (ColZone > 1 Or (ColZone = 1 And col > 1))
            If col > ColZone Then
                .Columns("A:B").Copy
                .Columns("A:B").Insert Shift:=xlToRight
            ElseIf col < ColZone Then
                .Columns("A:B").Delete Shift:=xlToLeft
            End If
            Zone.Select
            ColZone = Zone.Columns.Count / 2
        Wend
    End With
Application.CutCopyMode = False
End Sub
Avez-vous une idée ? Merci d'avance !

Renardor