Transformer une formule excel complexe en macro

lenovofe -  
 lenovofe -
Bonjour,

Pour obtenir des informations spécifiques sur un produit dans mon tableau excel, j'ai créé cette formule :

=SI(NBCAR(GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU45;5)&" "&SI(NB.SI(AW45;"*Revêtement*");"";GAUCHE(AW45;3))&"  "&GAUCHE(BJ45;10)& " " &BU45&" "&SI(OU(NBCAR(BB45)=0; NBCAR(BB45)=1);"";GAUCHE(BB45; NBCAR(BB45)-2))& " " &GAUCHE(AZ45;9))));30))<30; GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU45;13)&" "&SI(NB.SI(AW45;"*Revêtement*");"";GAUCHE(AW45;3))& " " & GAUCHE(BJ45;10)& " " &SI(NB.SI(BF45;"*TRANSPAREN*");"";GAUCHE(BF45;3))&" "&SI(OU(NBCAR(BB45)=0; NBCAR(BB45)=1);"";GAUCHE(BB45; NBCAR(BB45)-2))& " " &GAUCHE(AZ45;9)&" "&SI(NB.SI(AW45;"*Revêtement*");"";GAUCHE(AW45;3)))));30);GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU45;5)&" "&SI(NB.SI(AW45;"*Revêtement*");"";GAUCHE(AW45;3))& " " & GAUCHE(BJ45;10)& " " &SI(NB.SI(BF45;"*TRANSPAREN*");"";GAUCHE(BF45;3))&" "&SI(OU(NBCAR(BB45)=0; NBCAR(BB45)=1);"";GAUCHE(BB45; NBCAR(BB45)-2))& " " &GAUCHE(AZ45;9)&" "&GAUCHE(AW45;11))));30))



Je sais qu'elle n'est pas vraiment esthétique mais elle fonctionne très bien. Cependant, il faudrait que je la transforme en macro. En enregistrant ce que je fais dans Visual Basic, le code s'écrit automatiquement mais je ne peux pas le compiler (erreur 1004). Comment obtenir une macro fonctionnel et utilisable pour d'autres fichier excel du même modèle ?

Merci beaucoup d'avance.
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

Qu'entends tu par : il faudrait que je la transforme en macro??
Est ce que tu veux une macro qui t'affiche son résultat ou tu veux une macro qui te saisis la formule?
0
lenovofe
 
Je voudrais une macro qui, une fois compilée, m'affiche le résultat dans mon tableau excel.
La formule ci-dessus est la formule contenue dans une cellule (ligne 4 ici), mais elle répétée (et adaptée automatiquement) pour toutes les lignes n+1 de mon tableau.
Je ne sais pas du tout comment m'y prendre pour créer ma macro. J'ai regardé des tutos pour apprendre le langage VBA mais ça ne m'a pas beaucoup éclairé.

Merci pour votre aide.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > lenovofe
 
Si je comprends bien, ta formule pour la ligne 4 est :
=SI(NBCAR(GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU45;5)&" "&SI(NB.SI(AW45;"*Revêtement*");"";GAUCHE(AW45;3))&"  "&GAUCHE(BJ45;10)& " " &BU45&" "&SI(OU(NBCAR(BB45)=0; NBCAR(BB45)=1);"";GAUCHE(BB45; NBCAR(BB45)-2))& " " &GAUCHE(AZ45;9))));30))<30; GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU45;13)&" "&SI(NB.SI(AW45;"*Revêtement*");"";GAUCHE(AW45;3))& " " & GAUCHE(BJ45;10)& " " &SI(NB.SI(BF45;"*TRANSPAREN*");"";GAUCHE(BF45;3))&" "&SI(OU(NBCAR(BB45)=0; NBCAR(BB45)=1);"";GAUCHE(BB45; NBCAR(BB45)-2))& " " &GAUCHE(AZ45;9)&" "&SI(NB.SI(AW45;"*Revêtement*");"";GAUCHE(AW45;3)))));30);GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU45;5)&" "&SI(NB.SI(AW45;"*Revêtement*");"";GAUCHE(AW45;3))& " " & GAUCHE(BJ45;10)& " " &SI(NB.SI(BF45;"*TRANSPAREN*");"";GAUCHE(BF45;3))&" "&SI(OU(NBCAR(BB45)=0; NBCAR(BB45)=1);"";GAUCHE(BB45; NBCAR(BB45)-2))& " " &GAUCHE(AZ45;9)&" "&GAUCHE(AW45;11))));30))


pour la ligne 5 elle devient :
=SI(NBCAR(GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU46;5)&" "&SI(NB.SI(AW46;"*Revêtement*");"";GAUCHE(AW46;3))&"  "&GAUCHE(BJ46;10)& " " &BU46&" "&SI(OU(NBCAR(BB46)=0; NBCAR(BB46)=1);"";GAUCHE(BB46; NBCAR(BB46)-2))& " " &GAUCHE(AZ46;9))));30))<30; GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU46;13)&" "&SI(NB.SI(AW46;"*Revêtement*");"";GAUCHE(AW46;3))& " " & GAUCHE(BJ46;10)& " " &SI(NB.SI(BF46;"*TRANSPAREN*");"";GAUCHE(BF46;3))&" "&SI(OU(NBCAR(BB46)=0; NBCAR(BB46)=1);"";GAUCHE(BB46; NBCAR(BB46)-2))& " " &GAUCHE(AZ46;9)&" "&SI(NB.SI(AW46;"*Revêtement*");"";GAUCHE(AW46;3)))));30);GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU46;5)&" "&SI(NB.SI(AW46;"*Revêtement*");"";GAUCHE(AW46;3))& " " & GAUCHE(BJ46;10)& " " &SI(NB.SI(BF46;"*TRANSPAREN*");"";GAUCHE(BF46;3))&" "&SI(OU(NBCAR(BB46)=0; NBCAR(BB46)=1);"";GAUCHE(BB46; NBCAR(BB46)-2))& " " &GAUCHE(AZ46;9)&" "&GAUCHE(AW46;11))));30))


etc...
0
lenovofe > pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
Pardon j'ai fait une erreur de frappe. Pour que tout soit clair :

Ligne 3 :
=SI(NBCAR(GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU3;5)&" "&SI(NB.SI(AW3;"*Revêtement*");"";GAUCHE(AW3;3))&"  "&GAUCHE(BJ3;10)& " "&SI(NB.SI(BF3;"*TRANSPAREN*");"";GAUCHE(BF3;3))&" "&SI(OU(NBCAR(BB3)=0; NBCAR(BB3)=1);"";GAUCHE(BB3; NBCAR(BB3)-2))& " " &GAUCHE(AZ3;9))));30))<30;GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU3;13)&" "&SI(NB.SI(AW3;"*Revêtement*");"";GAUCHE(AW3;3))& " " & GAUCHE(BJ3;10)& " " &SI(NB.SI(BF3;"*TRANSPAREN*");"";GAUCHE(BF3;3))&" "&SI(OU(NBCAR(BB3)=0; NBCAR(BB3)=1);"";GAUCHE(BB3; NBCAR(BB3)-2))& " " &GAUCHE(AZ3;11)&" "&SI(NB.SI(AW3;"*Revêtement*");"";GAUCHE(AW3;3)))));30);GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU3;4)&" "&SI(NB.SI(AW3;"*Revêtement*");"";GAUCHE(AW3;3))& " " & GAUCHE(BJ3;10)& " " &SI(NB.SI(BF3;"*TRANSPAREN*");"";GAUCHE(BF3;3))&" "&SI(OU(NBCAR(BB3)=0; NBCAR(BB3)=1);"";GAUCHE(BB3; NBCAR(BB3)-2))& " " &GAUCHE(AZ3;9)&" "&GAUCHE(AW3;11))));30))


Ligne 4 :
=SI(NBCAR(GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU4;5)&" "&SI(NB.SI(AW4;"*Revêtement*");"";GAUCHE(AW4;3))&"  "&GAUCHE(BJ4;10)& " "&SI(NB.SI(BF4;"*TRANSPAREN*");"";GAUCHE(BF4;3))&" "&SI(OU(NBCAR(BB4)=0; NBCAR(BB4)=1);"";GAUCHE(BB4; NBCAR(BB4)-2))& " " &GAUCHE(AZ4;9))));30))<30;GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU4;13)&" "&SI(NB.SI(AW4;"*Revêtement*");"";GAUCHE(AW4;3))& " " & GAUCHE(BJ4;10)& " " &SI(NB.SI(BF4;"*TRANSPAREN*");"";GAUCHE(BF4;3))&" "&SI(OU(NBCAR(BB4)=0; NBCAR(BB4)=1);"";GAUCHE(BB4; NBCAR(BB4)-2))& " " &GAUCHE(AZ4;11)&" "&SI(NB.SI(AW4;"*Revêtement*");"";GAUCHE(AW4;3)))));30);GAUCHE(MAJUSCULE(SUPPRESPACE((GAUCHE(AU4;4)&" "&SI(NB.SI(AW4;"*Revêtement*");"";GAUCHE(AW4;3))& " " & GAUCHE(BJ4;10)& " " &SI(NB.SI(BF4;"*TRANSPAREN*");"";GAUCHE(BF4;3))&" "&SI(OU(NBCAR(BB4)=0; NBCAR(BB4)=1);"";GAUCHE(BB4; NBCAR(BB4)-2))& " " &GAUCHE(AZ4;9)&" "&GAUCHE(AW4;11))));30))


Etc, etc..
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > lenovofe
 
Ok.
Pour un résultat totalement adapté, qu'elle colonne contient ces formules?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
Jusqu'à qu'elle ligne étirer la formule?
0