Bonsoir,
J'ai un souci sur une commande qui me permet de retravailler un tableau (il me bloque la macro avec un code erreur 1004).
Je ne trouve pas où cela foire, quelqu'un aurait-il une idée ?
Merci d'avance et bonne nuit...
![]()
Bonsoir,
J'ai un souci sur une commande qui me permet de retravailler un tableau (il me bloque la macro avec un code erreur 1004).
Je ne trouve pas où cela foire, quelqu'un aurait-il une idée ?
Merci d'avance et bonne nuit...
![]()
Bonjour,
Je te remet ton code avec quelques corrections, concernant le bug, peux-tu expliquer ce que tu cherches à faire avec ta boucle i ?
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 Sub SupprColonnes() 'Suppression des colonnes Dim l As Range, C As Range Dim montest As Integer, x As Integer, i As Integer For Each l In Range("A2", Range("A2").End(xlToRight)) For Each C In Range("Liste") If l.Value = C.Value Then montest = 1 Exit For End If Next C If montest <> 1 Then l.ClearContents End If montest = 0 Next l Rows("2:2").SpecialCells(xlCellTypeBlanks).EntireColumn.Delete Range("A1").EntireRow.Delete Rows("1:1").RowHeight = 40.5 '************************************************************************** 'Toute cette partie peut être remplacée par la boucle For x '************************************************************************** 'Sélection des colonnes selon valeur de l'en-tête et largeur selon valeur cellule 'Columns("A:A").ColumnWidth = Sheets("Fonctions").Range("J30").Value 'Columns("B:B").ColumnWidth = Sheets("Fonctions").Range("J31").Value 'Columns("C:C").ColumnWidth = Sheets("Fonctions").Range("J32").Value 'Columns("D:D").ColumnWidth = Sheets("Fonctions").Range("J33").Value 'Columns("E:E").ColumnWidth = Sheets("Fonctions").Range("J34").Value 'Columns("F:F").ColumnWidth = Sheets("Fonctions").Range("J35").Value 'Columns("G:G").ColumnWidth = Sheets("Fonctions").Range("J36").Value 'Columns("H:H").ColumnWidth = Sheets("Fonctions").Range("J37").Value 'Columns("I:I").ColumnWidth = Sheets("Fonctions").Range("J38").Value 'Columns("J:J").ColumnWidth = Sheets("Fonctions").Range("J39").Value 'Columns("K:K").ColumnWidth = Sheets("Fonctions").Range("J40").Value 'Columns("L:L").ColumnWidth = Sheets("Fonctions").Range("J41").Value 'Columns("M:M").ColumnWidth = Sheets("Fonctions").Range("J42").Value 'Columns("N:N").ColumnWidth = Sheets("Fonctions").Range("J43").Value 'Columns("O:O").ColumnWidth = Sheets("Fonctions").Range("J44").Value 'Columns("P:P").ColumnWidth = Sheets("Fonctions").Range("J45").Value 'Columns("Q:Q").ColumnWidth = Sheets("Fonctions").Range("J46").Value 'Columns("R:R").ColumnWidth = Sheets("Fonctions").Range("J47").Value '**************************************************************************** For x = 1 To 18 Cells(1, x).ColumnWidth = Sheets("Fonctions").Cells(29 + x, 10).Value Next x ' Fusion des cellules et renommage Range("Q1:R1").Merge Range("Q1").Value = "Immatriculation" Range("D1").Value = "Lieu" Range("H1").Value = "Texte du journal" '**************************************** 'les deux lignes suivantes ne servent à rien 'on peut directement écrire For i = 2 to 200 '**************************************** 'Range("I2:I200").Select 'Compteur = Selection.Rows.Count For i = 2 To 200 'là je comprend pas très bien ce que tu veux faire 'tu veux remplir les cellules I2 à I200 avec les valeurs des colonnes F & G ? ActiveCell.Offset(i - 1, 0).FormulaR1C1 = "=RC[-3]&""""&RC[-2]" 'ici la colonne H prend la même valeur que la colonne I ? ActiveCell.Offset(i - 1, -1).Value = ActiveCell.Offset(i - 1, 0).Value Next i End Sub
Salut Fring,
En fait, dans la colonne H, je reprends uniquement la valeur de la colonne I (qui elle est dépendante de F + G); comme ça, je peux supprimer les colonnes I / F / G et garder que H qui en est le résultat.
Merci pour la boucle qui remplace avantageusement la sélection colonne-lignes faite auparavant.
![]()
Désolé, mais la ligne de codage plante à :
Est-ce que ce ne serait pas le fait de lier des éléments Cells avec ColumnWidth ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Cells(1, x).ColumnWidth = Sheets("Fonctions").Cells(29 + x, 10).Value
Didier
Non je ne pense pas, vérifie un peu ce que tu as comme valeurs dans les cellules J30 à J47 de la feuille Fonctions.
Il y a t'il une ou des cellules vides ?
Il y a t'il du texte ou des nombres du style 35689 ?
Tout Juste !
Cela marche ! Merci.![]()
Partager