Bonjour,

J'ai une macro de mise en forme de donnée avec un formulaire qui permet de choisir les paramètres de la mise en forme, notamment la largeur des colonnes.
Cette macro fonctionne parfaitement sur mon ordi mais lorsque mes collègues l'essaye sur leurs ordi ils ont un message d'erreur (1004) sur la ligne de code en rouge.
Et seulement si "a" (nb thème) est égale à 1, pas lorsqu'il vaut 2 ou plus.
Mais je ne vois pas pourquoi c'est lié.

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
'Sélectionne les CR par Thème
Dim ww As Range
Dim TabTHEME() As String

a = InputBox("Combien y a t'il de thème pour les critères réduits?", , 1)
l = 12
tot = 0
ReDim Preserve TabTHEME(1 To 4, 1 To 1)
ReDim TabNBTHEME(2, a) As String
ReDim TabNBANTHEME(3, a) As String

If a > 1 Then
nbth = a
    For i = 1 To a
    Rows(l).Select
    selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Cells(l, 1) = "Base répondant Thème N°" & i
    l = l + 1
    
    'Sélectionne les CR par thème
    On Error Resume Next
    Set Theme = Application.InputBox(prompt:="Sélectionnez les CR du thème N°" & i, Type:=8)
        If Err > 0 Then
            msgbox ("Macro annulée")
            Exit Sub
        End If
    Set Nom_Onglet_Theme = Theme.CurrentRegion
        Z = tot + 1
        tot = tot + Theme.Cells.Count
        ReDim Preserve TabTHEME(1 To 4, 1 To tot)
        
            TabNBTHEME(1, i) = "Base répondant Thème N°" & i
            TabNBTHEME(2, i) = Theme.Cells.Count 'nb de cr dans le thème
              
        For Each ww In Theme.Cells
            TabTHEME(1, Z) = "Base répondant Thème N°" & i
            TabTHEME(2, Z) = ww.Cells 'Libellé du cr
            TabTHEME(3, Z) = Theme.Cells.Count 'nb de cr dans le thème
            TabTHEME(4, Z) = ww.Cells.Address
            Z = Z + 1
        Next ww
    Next i
Else
nbth = 0
End If

'Met les colonnes à la largeur entré dans le formulaire

    Range(Columns(2), Columns(NbCol)).Select
    selection.ColumnWidth = UserForm1.Largeur_Colonne.Value
Je ne sais pas du tout pourquoi ca ne fonctionne pas.

Merci de votre aide.