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...
:roll:
Version imprimable
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...
:roll:
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:
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.
8-)
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: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.:yaisse2: