Adresse automatique dans une facture sur Excel

Bonjour,

Je suis actuellement en train de créer une facture sur une ancienne version d'Excel. Je souhaiterai qu'une fois avoir sélectionné le fournisseur voulu dans la liste déroulante que j'ai crée à cet effet, son adresse apparaisse automatiquement.
J'ai cherché sur de nombreux forum, mais je ne trouve pas de solution à mon problème. Si quelqu'un pouvait avoir la solution merci de bien vouloir m'aider :)

Merci d'avance

15 réponses

  1. Bonjour,

    Quelques questions :

    - Votre liste déroulante, c'est vous qui l'avez créée ? en VBA ? Si non, comment elle est ?
    - L'adresse doit apparaitre où ? Juste en dessous du nom ? Dans quelle cellule ?

    idée n°1 :

    Une solution serait de créer une base de donnée sur l'onglet suivant ou vous auriez le nom du fournisseur et son adresse a coté, un simple tableau quoi.

    Faire une simple macro qui regarde la valeur (.value) de la cellule fournisseur et qui va la comparer a ton tableaux de fournisseurs pour mettre égal la cellule du dessous à la cellule de l'adresse fournisseur du tableau.

    idée n°2 :

    Si vous n'avez pas un grand nombre de founisseurs, pas des centaines, vous pouvez faire une macro toute simple qui va lors d'un clic, regarder la valeur de la cellule fournisseur et à l'aide d'un case, chercher l'adresse directement à l'intérieur de la macro. Mais bon, mettre des données en hard dans une macro, c'est jamais génial ^^

    Si vous voulez que je vous crée une de ces macros, dites le moi, ya aucun soucis.

    Bonne journée
    0
    1. Merci de votre réponse
      je dois admettre que je ne suis pas douée en informatique, je ne sais pas ce qu'est une macro
      J'ai crée moi même la liste déroulante, elle contient 14 noms, je ne peux pas crée un tableau à coté, car c'est une facture à envoyer ..
      0
      1. J'ai par ailleurs essayé de faire une recherche V mais je ne comprend pas "l'aide" apporter par excel :/
        0
        1. Alors voila comment procéder pour régler votre problème, suivez bien les instructions.

          1)Commencez par enregistrer votre fichier excel en .xlsm, format prennant en compte les macros.

          2)Sur Excel, bouton démarrer>option excel>centre de gestion de la confidentialité>parametres du centre de gestion de la confidentialité>paramètre des macros>activer toutes les macros

          3)Ouvrez votre fichier .xlsm biensur

          4) Alt+F11 : ouverture de l'interface VBA

          5) clic droit dans la partie de gauche : insertion>module
          6) copier le code si dessous dans le module :

          ____
          Sub GetFournisseur()

          Dim srtNameReal As String
          srtNameReal = Sheets("Feuil1").Range("D4").Value

          Select Case srtNameReal
          Case "Fournisseur1"
          Sheets("feuil1").Range("D5") = "Rue de la gare 12"
          Case "Fournisseur2"
          Sheets("feuil1").Range("D5") = "Rue de la gare 12"
          Case "Fournisseur3"
          Sheets("feuil1").Range("D5") = "Rue de la gare 12"
          Case "Fournisseur3"
          Sheets("feuil1").Range("D5") = "Rue de la gare 12"

          Case Else
          MsgBox ("Fournisseur introuvable, vérifiez l'orthographe")
          End Select
          End Sub

          _____
          'modifier le nom de votre feuille et la cellule ou se trouve le nom de votre fournisseur
          'La cellule D5 correspond a votre cellule d'adresse, ou vous voulez que l'adresse soit mise.
          'ajoutez autant de case que vous voulez, "Fournisseur1" 2 3 etc sont les noms complets de de vos fournisseur. Il faut qu'ils soient parfaitement égaux dans les caractères pour que le case fonctionne.

          7) Entrez tous les cases possibles des noms de fournisseurs
          8) Enregistez ;-) et quittez la fenetre VBA
          9) Onglet développeur>Inserer>"le preimer item, c'est un rectangle gris
          C'est votre bouton de macro, pour l'activer
          10) clic droit sur le bouton : affecter une macro et la macro getfournisseur.
          11) Enjoy

          si vous avez un problème hésitez pas !
          0
          1. Merci infiniment !!!
            C'est plus simple que ce que j'avais fais, j'avais créé une macro par fournisseur --'
            cependant lorsque j'écris ceci :

            Sub GetFournisseur()

            Dim srtNamesReal As String

            Select Case srtNameReal
            Case "XXX"
            Sheets("BDDF").Range("B36:B37") = "40 rue la XXX"
            Case "XXXX"
            Sheets("BDDF").Range("B33") = "39 avenue XXXX "

            End Select
            End Sub

            cela ne marche pas. Pour être plus précise, BDDF est la table ou se trouve tous les fournisseurs, et B36:B37 sont des cellules fusionnées ou se trouve l'adresse sur la table BDDF

            De plus, puis je ajouter le code postal et la ville ?
            0
            1. alors le range doit etre une seule cellule je crois pour que ca fonctionne.
              et pour le code postal, c'est aussi simple, tu rajoutes une ligne :

              sheets("BDDF").Range("B36") = "40 rue..."
              sheets("BDDF").Range("B37") = "code postal"
              sheets("BDDF").Range("C37") = "La ville"

              ce qui donnerait ton adresse avec le code postal et la ville en dessous.

              Mais n'oublie pas la ligne
              srtNameReal = Sheets("Feuil1").Range("D4").Value
              dans ta macro ^^ le range doit etre celui ou le fournisseur est inscrit

              bonne soirée
              0
          2. Bonjour,
            cela il faut prendre la fonction RECHERCHV ou INDEX
            mais sans fichier en exemple difficile de t'aider, sinon tu peut mettre un exemple de ton fichier sans données confidenciels ici https://www.cjoint.com/
            puis tu met le lien

            marc
            0
            1. J'ai refais un document très simplifié
              http://cjoint.com/?3FdqlUIvZEq

              Encore merci pour votre aide
              0
              1. Bonjour

                Voila une autre solution

                http://cjoint.com/?3FdwaZaf88P

                A+

                Maurice
                0
                1. Merci beaucoup pour votre aide.
                  J'ai crée la macro, tout fait comme il fallait enfin il me semble, et pourtant elle ne veut pas s'afficher sur ma facture, je reviens dans microsoft visual basic, et un message disant "cette commande va arrêter le débogueur"
                  Qu'est ce que cela signifie ?
                  0
                  1. Le debut de ma macro:
                    Sub AdresseFournisseur()
                    '
                    ' AdresseFournisseur Macro
                    ' Macro enregistrée le 04/06/2013 par xxx
                    '
                    '
                    Dim srtNameReal As String
                    srtNameReal = Sheets("Feuil1").Range("G10").Value

                    et la fin

                    Sheets("BDDF").Range("C38") = "75002 PARIS"

                    End Select
                    '
                    End Sub

                    Quelqu'un voit il le problème ?
                    Merci d'avance
                    0
                    1. Bonjour

                      pourquoi n utilisez vous pas la recherche V ?
                      0
                      1. Une recherche V me permettrait d'avoir l'adresse d'un fournisseur qui apparait automatiquement en fonction du noms du fournisseurs ?
                        Si oui, comment fait on ? J'ai déjà essayé de faire ce que j'avais lu sur internet sur la recherche v mais je n'ai pas réussi ..
                        0
                        1. Contributeur
                          Je constate que tu as pris en considération mon message #8 du 3 juin à 16:35 et que tu as lu très attentivement la fiche technique dont je t'ai donné le lien !
                          Elle répond très exactement à ton besoin
                          C'est vachement encourageant ...
                          0
                      2. Bonjour,
                        regarder ci cela vous convient, si oui je vous expliqurais comment faire

                        marc

                        https://www.cjoint.com/?CFeqgi86prw
                        0
                        1. OUIII c'est exactement ce que je cherche à faire !!
                          Merci beaucoup marc :)
                          Comment faites vous cela ?
                          0
                        2. Merci merci merci Marc
                          j'ai enfin réussi !!
                          le seul soucis est que la fleche de la liste déroulante s'affiche lors de l'impression ^^
                          0
                      3. Re,
                        tu clik droit sur la liste deroulande format de control et propriété et tu decoche imprimer objet

                        marc
                        0