Si(estvide) + recherchev
Bonjour à tous ! Je suis nouveau sur le forum
Alors voilà, j'ai décidé d'un peu plus automatiser la création de mes factures qui jusque là me prenne beaucoup trop de temps.
Mais connaissances sur Excel sont très limitées, à part automatiser des calculs simples je ne sais pas faire grand chose...
Voilà ce que j'ai fais jusque là :
- La feuille 1 correspond à la facture détaillée à envoyer aux clients.
- La feuille 2 c'est la liste de tous les clients en A, leur adresse en B, leur numéro de TVA en C et si la TVA est applicable ou non en D.
J'ai renommé les 4 colonnes en "tableau_clients" - Sur la feuille 1 en B1 j'ai crée une liste déroulante qui correspond à la liste des clients (feuille 2, A)
- Sur la feuille 1 en B2 c'est l'adresse du client, donc j'ai crée une formule pour qu'Excel aille directement chercher sur la feuille 2 l'adresse du client sélectionné dans le menu déroulant
=RECHERCHEV(B1;tableau_clients;2)
Jusque là, ça fonctionne ! - Sur la feuille 1 en B3 c'est le numéro de TVA du client, je ne renseigne que le numéro de TVA intracommunautaire si le client est étranger, pour les autres je ne renseigne rien
Sur la feuille 1 en B4 c'est la phrase qui renseigne si la TVA est applicable ou non. Pour les clients étrangers je renseigne la phrase "TVA non applicable : article 283-2 du CGI", pour les autres je ne renseigne rien. - J'ai donc voulu faire la même formule qu'au dessus, cela fonctionne le numéro de TVA et la phrase sont bien renseignés lorsque je sélectionne un client étranger, mais pour les autres clients, comme je n'ai rien renseigner Excel interprète cela comme étant "0" et donc m'indique ce chiffre dans les deux cellules B3 et B4.
- J'ai donc tenté d'utiliser SI(ESTVIDE), et alors là je suis bloqué... J'ai essayé plusieurs choses mais à chaque fois ça ne fonctionne pas. Je n'arrive pas à lui faire comprendre qu'il faut qu'il aille chercher ici =RECHERCHEV(B1;tableau_clients;4) et que s'il n'y a rien, et bien il ne met rien.
- J'ai tenté =SI(ESTVIDE((RECHERCHEV(B1;tableau_clients;4));"";"=RECHERCHEV(B1;tableau_clients;4)")
par exemple mais il me dit que j'ai entré un nombre trop important d'arguments pour cette fonction.
- J'ai tenté =SI(ESTVIDE((RECHERCHEV(B1;tableau_clients;4));"";"=RECHERCHEV(B1;tableau_clients;4)")
Voilà voilà j'ai l'impression que mon raisonnement est bon pourtant mais non... Quelqu'un aurait une idée sur ce qui bloque et comment le résoudre ?
Je ne sais pas si c'est très clair... J'aimerais joindre un fichier simplifié que j'ai fais mais je n'arrive pas à le joindre à mon message.
Merci beaucoup pour votre aide !
Bonjour, tu dois simplement inclure un SI devant ta RechercheV, si ça donne ça tu écris ça sinon tu écris l'autre... Bien à toi. Tu n'as pas besoin du ESTVIDE. Pour joindre un fichier tu cliques sur le logo avec le X, 3 caractères à gauche du smiley.
Merci pour ta réponse et désolé d'avance mais je débute vraiment... et je ne suis pas sur de comprendre ce que tu proposes.
Il faudrait que je fasse quelque chose comme ça ?
=SI((=RECHERCHEV(B1;tableau_clients;3));?;?)
Je ne sais pas quoi mettre à la place des "?"
Je vais joindre mon fichier ce sera plus simple je pense.
Sur mon fichier on voit que pour le client AAA et le client BBB, comme leur numéro de TVA n'est pas renseigné, ni si elle s'applique ou non dans la feuille 2, et bien ça me met 0.
Pour le client CCC par contre, j'ai renseigné son numéro TVA et si elle s'applique ou non, sur la feuille 2 et donc ces informations sont bien reporté sur la feuille 1 lorsqu'on sélectionne le bon client dans le menu déroulant.
Re, voila si j'ai bien compris ce que tu veux, quand tu choisis le client CCC, il indique ce qu'il doit et quand il n'y a rien, il n'indique rien
=SI(RECHERCHEV(B1;Feuil2!A3:D5;3;0)="";"";RECHERCHEV(B1;Feuil2!A3:D5;3;0)), ce qui veut dire, si ta recherche ne donne rien, tu n'inscrit rien par contre si ta recherche est fructueuse, il l'inscrit !
Alors non c'est pas ça. Quand je choisi le Client CCC, il n'y a aucun problème, il me met automatiquement l'adresse, son numéro de TVA, et le fait que la TVA est non applicable.
Par contre pour les client AAA et BBB, leur numéro de TVA ne doit pas apparaitre puisque je ne l'ai pas renseigné dans la feuille 2, et le message comme quoi la TVA est non applicable ne doit pas apparaitre non plus, puisque ce ne sont pas des clients étrangers et que dans la feuille 2 j'ai donc laissé ces cellules videss. Pour l'instant sur ces deux cellules, Excel m'affiche 0, et j'aimerais qu'il affiche rien à la place et que les cellules restent vide.
Je ne sais pas si c'est plus clair comme ça ?
Ah ça a l'air de marcher !!!! Merci beaucoup JM tu me sauve la vie je cherche depuis 7h ce matin je devenais fou !
Par contre la partie en gras =SI(RECHERCHEV(B1;Feuil2!A3:D5;3;0)="";"";RECHERCHEV(B1;Feuil2!A3:D5;3;0)) cela signifie que si je rajoute de nouveaux clients cela ne va pas s'adapter au nombre de lignes non ?
Ok j'ai adapté ta formule comme ceci :
=SI(RECHERCHEV(B1;tableau_clients;3)="";"";RECHERCHEV(B1;tableau_clients;3))
et pour l'autre cellule
=SI(RECHERCHEV(B1;tableau_clients;4)="";"";RECHERCHEV(B1;tableau_clients;4))
Et maintenant ça a l'air de s'adapter, il faut que je fasse quelques tests pour être sûr.
Oui, c'est ça, c'est toujours mieux de travailler avec des "noms" pour les plages et les tableaux ! Heureux d'avoir pu t'aider ! Bonne soirée. Encore un petit conseil, essaye d'indiquer après le N° de colonne le ;0 car tu verras si tu continues à travailler avec la rechercheV, dès fois tu devras mettre le ;1.
Yes c'est parfait tout fonctionne ! Encore merci ! :)