Bonjour à toutes et à tous,
Voilà mon problème :
J'ai un logiciel à mon travail qui ouvre un fichier excel dans lequel je dois choisir des plans.
Mais peu importe que le produit diffère, a peu de choses près les noms sont les mêmes.
J'ai donc créer une macro qui je pense peut être allégée 😉
Qu'ai je fait?
Et bien je demande d'abord de copier une ligne (juste la valeur) puis je demande de rechercher les différents plans et de changer la valeur de la case (ici = 1). Parfois il y en a plusieurs commençant par le même mot (ex :VUE INTERIEURE), je demande donc à ma macro de rechercher le suivant.
De plus j'ai désactivé les erreurs d'exécution car selon le produit fini il n'y a pas tout le temps tout ces plans.
Mes demandes d'aides?
1°) Je souhaiterai que plutôt intégrer les mots à rechercher dans la macro, qu'elle vienne rechercher dans un tableau(sur autre fichier excel?), ce qui admettrai des changements plus faciles (je pense à une boucle non? mais j'ai pas le niveau 😱 )
2°) En fait je donne la valeur 1 car pour choisir le plan il faut que la case correspondante au plan dans la colonne "A" passe à 1 (sinon c'est 0)....... NOTA : j'ai donc truandé en ajoutant dans la macro un copié collé dans la colonne A:A d'un "=Si(Lx=1;1;0)" !!!
En soit la macro marche pas de soucis, mais l'amélioration continue fait pas de mal !!
Voilà 😛
Merci !
Voilà mon problème :
J'ai un logiciel à mon travail qui ouvre un fichier excel dans lequel je dois choisir des plans.
Mais peu importe que le produit diffère, a peu de choses près les noms sont les mêmes.
J'ai donc créer une macro qui je pense peut être allégée 😉
Code:
Columns("G:G").Select
Selection.Copy
Columns("L:L").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Cells.Find(What:="IMPLANT").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="COMPLEMENT CHASSIS").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="POSITION LAMBOURDES CHASSIS").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PROFILS U BAS CLOISONS").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="EVACUATIONS /").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="COTE PORTE FRONTON").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.Find(What:="MUR C").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PIGNON").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="POUTRE FAITIERE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PASSAGE DES CABLES").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CHARPENTE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PERCAGE TOIT").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CLOISONS SOUS ").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PROFILS U").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CIRCUIT EAU").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="POSITION CIRCUIT").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CIRCUIT GAZ").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="LEGENDE SYMBOLES ELECTRIQUE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CIRCUIT ELECTRIQUE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CIRCUIT CABLES TERRE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="VUE INTERIEURE ").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="EVACUATIONS EAUX").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="POSITION DES CONVECTEURS").Activate
ActiveCell.FormulaR1C1 = "1"
Qu'ai je fait?
Et bien je demande d'abord de copier une ligne (juste la valeur) puis je demande de rechercher les différents plans et de changer la valeur de la case (ici = 1). Parfois il y en a plusieurs commençant par le même mot (ex :VUE INTERIEURE), je demande donc à ma macro de rechercher le suivant.
De plus j'ai désactivé les erreurs d'exécution car selon le produit fini il n'y a pas tout le temps tout ces plans.
Mes demandes d'aides?
1°) Je souhaiterai que plutôt intégrer les mots à rechercher dans la macro, qu'elle vienne rechercher dans un tableau(sur autre fichier excel?), ce qui admettrai des changements plus faciles (je pense à une boucle non? mais j'ai pas le niveau 😱 )
2°) En fait je donne la valeur 1 car pour choisir le plan il faut que la case correspondante au plan dans la colonne "A" passe à 1 (sinon c'est 0)....... NOTA : j'ai donc truandé en ajoutant dans la macro un copié collé dans la colonne A:A d'un "=Si(Lx=1;1;0)" !!!
En soit la macro marche pas de soucis, mais l'amélioration continue fait pas de mal !!
Voilà 😛
Merci !
Dernière édition: