J'ai un fichier xls avec des donn=E9es du type :
BUDG I 012 I 25% I AMG I 145 I 27% I
BVDG I 014 I 28% I BUDG I 213 I 75% I
A chaque fois donc un code de trois lettres et dans les 2 cellules =E0
droite un r=E9sultat en effectifs et un r=E9sultat en %.
Je voudrais faire une feuille avec chaque code identique dans la m=EAme
colonne :
BUDG I 012 I 25% I AMG I 145 I 27% I
BUDG I 213 I 75% I I I I BVDG I 014 I 28% I
I I I AMG I 789 I 67% I BVDG I 456 I 35% I
J'ai la liste des codes.
Pour l'instant, j'ai fait une macro que je dois adapter code par
code :
Sub Reorganize()
For Each c In Range("Q2:AB1075")
If InStr(1, c, "BUDG") > 0 Then
Range("BJ" & c.Row).Value =3D c.Value
c.Offset(0, 1).Select
Selection.Copy
Range("BK" & c.Row).Select
ActiveCell.PasteSpecial
c.Offset(0, 2).Select
Selection.Copy
Range("BL" & c.Row).Select
ActiveCell.PasteSpecial
End If
Next c
End Sub
Je ne voudrais faire qu'une seule op=E9ration sans modifier =E0 chaque
fois ma macro.
Des id=E9es ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
francois.forcet
Salut à toi
Je te propose ton corrigé ainsi :
For Each d In Range("Q2:AB1075") If Traité Like "*-" & d & "-*" = False Then For Each c In Range(d & ":AB1075") If InStr(1, c, d) > 0 Then Range("BJ" & c.Row).Value = c.Value c.Offset(0, 1).Select Selection.Copy Range("BK" & c.Row).Select ActiveCell.PasteSpecial c.Offset(0, 2).Select Selection.Copy Range("BL" & c.Row).Select ActiveCell.PasteSpecial End If Next c Traité = Traité & "-" & d & "-" Next d
Je ne l'ai essayé dans son intégralité mais sur une partie
Celà devrait fonctionner
Dis moi !!!!
Salut à toi
Je te propose ton corrigé ainsi :
For Each d In Range("Q2:AB1075")
If Traité Like "*-" & d & "-*" = False Then
For Each c In Range(d & ":AB1075")
If InStr(1, c, d) > 0 Then
Range("BJ" & c.Row).Value = c.Value
c.Offset(0, 1).Select
Selection.Copy
Range("BK" & c.Row).Select
ActiveCell.PasteSpecial
c.Offset(0, 2).Select
Selection.Copy
Range("BL" & c.Row).Select
ActiveCell.PasteSpecial
End If
Next c
Traité = Traité & "-" & d & "-"
Next d
Je ne l'ai essayé dans son intégralité mais sur une partie
For Each d In Range("Q2:AB1075") If Traité Like "*-" & d & "-*" = False Then For Each c In Range(d & ":AB1075") If InStr(1, c, d) > 0 Then Range("BJ" & c.Row).Value = c.Value c.Offset(0, 1).Select Selection.Copy Range("BK" & c.Row).Select ActiveCell.PasteSpecial c.Offset(0, 2).Select Selection.Copy Range("BL" & c.Row).Select ActiveCell.PasteSpecial End If Next c Traité = Traité & "-" & d & "-" Next d
Je ne l'ai essayé dans son intégralité mais sur une partie
Celà devrait fonctionner
Dis moi !!!!
Sylvain P.
Merci François, mais ça ne fonctionne pas. ça bloque ici : For Each c In Range(d & ":AB1075") Tu vois ce que c'est ?? A+
Merci François, mais ça ne fonctionne pas.
ça bloque ici : For Each c In Range(d & ":AB1075")
Tu vois ce que c'est ??
A+