Faire un choix entre deux feuilles selon le contenu d'une cellule

Résolu
Bonjour,
Je reviens encore une fois vers vous car ce forum est vraiment parfait pour moi, à chaque fois, j'y trouve les réponses à mes questions.

Bon voici mon problème :
J'ai un dossier avec plusieurs feuilles
j'introduis des éléments dans la feuille 1 et certains de ces éléments doivent être recopiés sur d'autre(s) feuilles(s). Jusque là, ok tout est fait en VBA.
Mais, j'ai une donnée en feuille 1, cellule A3 qui fait que selon son contenu, mes données devront être recopiées en feuille 2 ou feuille 3 ou feuille 4

je pensais à un if...then, mais je ne sais pas que placer après le IF
ma ligne Sheets("Magasin1").range("A"&ligne").value =sheets("Bon de Commande").range("E1").value

et c'est ici que je voudrais que le nom "Magasin1" soit remplacé par une référence a la feuille où il doit aller (donc, ici en magasin1 ou magasin2 ou magasin3)

merci de votre aide

Configuration: Windows / Chrome 87.0.4280.66

15 réponses

Résumé de la discussion

La discussion porte sur l’automatisation VBA consistant à copier des éléments saisis sur la feuille principale vers une feuille destinée dont le nom dépend de la valeur en A3. Des échanges envisagent des solutions dynamiques pour déterminer la feuille cible, remplaçant Magasin1 par le contenu de la cellule appropriée, comme E1 ou A3, afin d’acheminer les données. Certains répondants précisent qu’il faut envoyer les données vers l’onglet dont le nom est indiqué dans Bon de Commande A3, plutôt que vers un onglet Magasin fixe, avec des extensions à neuf magasins.

Bobot (l’IA à votre service)
  1. Contributeur
    bonjour,
    entre le IF et le THEN, ou après le THEN?
    0
    1. Contributeur
      peut-être, en supposant que "feuille 1" soit vraiment le nom de la feuille:
      dim magasin as string
      magasin=sheets("feuille 1").[A3]
      Sheets(magasin).range("A"&ligne").value =sheets("Bon de Commande").range("E1").value    
      0
  2. Merci de votre reponse aussi rapide.
    C'est presque cela, mais ...
    Ma première feuille se nomme bon de commande et en A3 j'ai le nom de plusieurs succursales (en liste déroulante). Ensuite, j'ai une feuille qui porte le nom de la succursale ( une feuille par succursale)
    Le bon De commande est commun à toutes les succursales.
    J'ai également une feuille historique des commandes, une feuille financements qui donnent une idée de ce qui se passe dans chaque succursale.
    Sur la feuille du nom de la succursale, je dois inscrire une partie des données du bon de commande, cela fait plus ou moins 15 lignes de Vba.
    Donc en résumé je voudrais que si en A3 du bon de commande j'ai "Ans" mes instructions devant aller sur la feuille succursale iront dans la feuille "Ans" et si sur mon BC j'ai en A3 "Dinant" mes données vont dans la feuille "Dinant".
    Comme cela fait plusieurs fois que vous m'aidez sur ce problème, je peux aussi vous envoyer le fichier complet.
    Je vous remercie pour votre aide.
    Ps: votre pseudo se terminant par be, seriez vous de notre beau pays ?
    Bonne soirée
    0
    1. Contributeur
      nous sommes en effet du même beau pays!

      alors peut-être ainsi:
      dim magasin as string
      magasin=sheets("bon de commande").[A3]
      Sheets(magasin).range("A"&ligne").value =sheets("Bon de Commande").range("E1").value
      0
    2. @yg_beça me semble parfait !
      je vais essayer.
      si je comprends, je donne le nom de ce qui se trouve en A3 à "Magasin"
      ensuite, je choisis la feuille qui porte ce nom ...
      Super
      j'essaie de suite.
      Merci
      0
    3. Contributeur
      @simkmiltu mets dans la variable nommée magasin le contenu d'une cellule
      et puis tu utilises cette variable pour déterminer dans quelle feuille tu veux travailler

      ceci fonctionnerait aussi, mais me semble beaucoup moins clair, surtout si tu as plusieurs instructions similaires:
      Sheets(sheets("bon de commande").[A3]).range("A"&ligne").value =sheets("Bon de Commande").range("E1").value
      0
    4. @yg_beMerci, je viens de faire un essai et ça bloque !

      et je n'arrive pas à mettre mon code en exemple selon les règles, lorsque je déploie la flèche dans l'entete, je n'ai pas VBA
      0
    5. @simkmil


      'remplissage de la feuille du magasin

      Dim magasin As String
      magasin = Sheets("Bon de Commande").[A3].Value

      ligne = Sheets("magasin").Range("A" & Rows.Count).End(xlUp).Row + 1
      Sheets("magasin").Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value

      ' Sheets("INSTAGRAM").Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value 'numero BC
      Sheets("magasin").Range("C" & ligne).Value = Sheets("Bon de Commande").Range("C5").Value 'nom
      Sheets("magasin").Range("G" & ligne).Value = Sheets("Bon de Commande").Range("C8").Value 'Localité
      Sheets("magasin").Range("H" & ligne).Value = Sheets("Bon de Commande").Range("C9").Value 'Téléphone
      Sheets("magasin").Range("I" & ligne).Value = Sheets("Bon de Commande").Range("D182").Value 'Fournisseur
      Sheets("magasin").Range("D" & ligne).Value = Sheets("Bon de Commande").Range("E5").Value 'Prénom

      Sheets("magasin").Range("B" & ligne).Value = Sheets("Bon de Commande").Range("D3").Value 'date
      Sheets("magasin").Range("E" & ligne).Value = Sheets("Bon de Commande").Range("C6").Value 'adresse
      Sheets("magasin").Range("F" & ligne).Value = Sheets("Bon de Commande").Range("C7").Value 'code postal
      Sheets("magasin").Range("J" & ligne).Value = Sheets("Bon de Commande").Range("A14").Value 'Description Ligne 1
      Sheets("magasin").Range("K" & ligne).Value = Sheets("Bon de Commande").Range("A15").Value 'Description Ligne 2
      Sheets("magasin").Range("L" & ligne).Value = Sheets("Bon de Commande").Range("A16").Value 'Description ligne 3
      Sheets("magasin").Range("M" & ligne).Value = Sheets("Bon de Commande").Range("A17").Value 'Description ligne 4
      Sheets("magasin").Range("N" & ligne).Value = Sheets("Bon de Commande").Range("A18").Value 'Description ligne 5
      Sheets("magasin").Range("O" & ligne).Value = Sheets("Bon de Commande").Range("A19").Value 'Description ligne 6
      Sheets("magasin").Range("P" & ligne).Value = Sheets("Bon de Commande").Range("A20").Value 'Description ligne 7
      Sheets("magasin").Range("Q" & ligne).Value = Sheets("Bon de Commande").Range("A21").Value 'Description ligne 8
      Sheets("magasin").Range("R" & ligne).Value = Sheets("Bon de Commande").Range("A22").Value 'Description ligne 9

      Sheets("magasin").Range("S" & ligne).Value = Sheets("Bon de Commande").Range("E24").Value 'Prix de vente

      Sheets("magasin").Range("U" & ligne).Value = Sheets("Bon de Commande").Range("B182").Value 'Prix Achat HT
      Sheets("magasin").Range("V" & ligne).Value = Sheets("Bon de Commande").Range("M29").Value 'total acomptes

      Sheets("magasin").Range("W" & ligne).Value = Sheets("Bon de Commande").Range("E32").Value 'Financement
      Sheets("magasin").Range("Y" & ligne).Value = Sheets("Bon de Commande").Range("B187").Value 'Agios

      Sheets("magasin").Range("AB" & ligne).Value = Sheets("Bon de Commande").Range("D185").Value 'Vendeur

      Sheets("magasin").Range("AD" & ligne).Value = Sheets("Bon de Commande").Range("E112").Value 'Livraison montant

      If Sheets("Bon de Commande").CheckBox4.Value = "Vrai" Then
      Sheets("magasin").Range("X" & ligne).Value = "COFIDIS"
      Else
      Sheets("magasin").Range("X" & ligne).Value = "CETELEM"
      End If

      If Sheets("Bon de Commande").Range("D112").Value = "OUI" Then
      Sheets("magasin").Range("AC" & ligne).Value = "OUI"
      Else
      Sheets("magasin").Range("AC" & ligne).Value = "NON"
      End If
      0
  3. je viens de voir que je pouvais utiliser les codes pour le basic ici en vba donc, je recommence :
    'remplissage de la feuille du magasin

    Dim magasin As String
    magasin = Sheets("Bon de Commande").[A3].Value

    ligne = Sheets("magasin").Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("magasin").Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value

    ' Sheets("INSTAGRAM").Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value 'numero BC
    Sheets("magasin").Range("C" & ligne).Value = Sheets("Bon de Commande").Range("C5").Value 'nom
    Sheets("magasin").Range("G" & ligne).Value = Sheets("Bon de Commande").Range("C8").Value 'Localité
    Sheets("magasin").Range("H" & ligne).Value = Sheets("Bon de Commande").Range("C9").Value 'Téléphone
    Sheets("magasin").Range("I" & ligne).Value = Sheets("Bon de Commande").Range("D182").Value 'Fournisseur
    Sheets("magasin").Range("D" & ligne).Value = Sheets("Bon de Commande").Range("E5").Value 'Prénom

    Sheets("magasin").Range("B" & ligne).Value = Sheets("Bon de Commande").Range("D3").Value 'date
    Sheets("magasin").Range("E" & ligne).Value = Sheets("Bon de Commande").Range("C6").Value 'adresse
    Sheets("magasin").Range("F" & ligne).Value = Sheets("Bon de Commande").Range("C7").Value 'code postal
    Sheets("magasin").Range("J" & ligne).Value = Sheets("Bon de Commande").Range("A14").Value 'Description Ligne 1
    Sheets("magasin").Range("K" & ligne).Value = Sheets("Bon de Commande").Range("A15").Value 'Description Ligne 2
    Sheets("magasin").Range("L" & ligne).Value = Sheets("Bon de Commande").Range("A16").Value 'Description ligne 3
    Sheets("magasin").Range("M" & ligne).Value = Sheets("Bon de Commande").Range("A17").Value 'Description ligne 4
    Sheets("magasin").Range("N" & ligne).Value = Sheets("Bon de Commande").Range("A18").Value 'Description ligne 5
    Sheets("magasin").Range("O" & ligne).Value = Sheets("Bon de Commande").Range("A19").Value 'Description ligne 6
    Sheets("magasin").Range("P" & ligne).Value = Sheets("Bon de Commande").Range("A20").Value 'Description ligne 7
    Sheets("magasin").Range("Q" & ligne).Value = Sheets("Bon de Commande").Range("A21").Value 'Description ligne 8
    Sheets("magasin").Range("R" & ligne).Value = Sheets("Bon de Commande").Range("A22").Value 'Description ligne 9

    Sheets("magasin").Range("S" & ligne).Value = Sheets("Bon de Commande").Range("E24").Value 'Prix de vente

    Sheets("magasin").Range("U" & ligne).Value = Sheets("Bon de Commande").Range("B182").Value 'Prix Achat HT
    Sheets("magasin").Range("V" & ligne).Value = Sheets("Bon de Commande").Range("M29").Value 'total acomptes

    Sheets("magasin").Range("W" & ligne).Value = Sheets("Bon de Commande").Range("E32").Value 'Financement
    Sheets("magasin").Range("Y" & ligne).Value = Sheets("Bon de Commande").Range("B187").Value 'Agios

    Sheets("magasin").Range("AB" & ligne).Value = Sheets("Bon de Commande").Range("D185").Value 'Vendeur

    Sheets("magasin").Range("AD" & ligne).Value = Sheets("Bon de Commande").Range("E112").Value 'Livraison montant

    If Sheets("Bon de Commande").CheckBox4.Value = "Vrai" Then
    Sheets("magasin").Range("X" & ligne).Value = "COFIDIS"
    Else
    Sheets("magasin").Range("X" & ligne).Value = "CETELEM"
    End If

    If Sheets("Bon de Commande").Range("D112").Value = "OUI" Then
    Sheets("magasin").Range("AC" & ligne).Value = "OUI"
    Else
    Sheets("magasin").Range("AC" & ligne).Value = "NON"
    End If

    j'espère que ainsi ce sera lisible pour vous.
    La ligne qui bloque est celle qui doit incrémenter les numeros de ligne dans la feuille de destination
    0
    1. Contributeur
      tu as un onglet dont le nom est "magasin"?
      0
  4. Non, pas d'onglet magasin puisque je veux envoyer mes données sur l'onglet dont le nom se trouve dans bon de commande, A3
    Voilà
    0
    1. Bonjour,
      je reviens ce matin, car hier soir, j'ai abandonné !
      j'ai donc fait un nouveau fichier, juste pour essai.
      Je fais trois onglets : Bon de Commande, ANS, DINANT
      J'applique votre code à la lettre et cela ne fonctionne pas .
      J'ajoute un onglet "magasin" et ça fonctionne, c'est à dire que ce que j'ai mis en D3 de mon bon de commande se retrouve en A3 sur l'onglet magasin.
      Mais ce que je dois avoir c'est que en fonction de ce qui est sur le BC, aille se recopier sur l'onglet ANS ou DINANT
      voici le lien de ce que j'ai fais comme essai
      https://www.cjoint.com/c/JKBjBqsQ4hu

      merci de votre aide
      0
      1. Contributeur
        tu n'as pas fait comme suggéré en #4.
        0
      2. @yg_beje regarde ... et malédiction, j'ai tous vos post de 1 à 14 mais pas le 4 !!!
        pourtant je pensais bien avoir suivi tous vos conseils.
        0
      3. Contributeur
        @simkmiln'y-a-t-il pas un bouton "afficher les commentaires" entre le #3 et le #5?
        tu peux aussi comparer ce que tu as fait avec ma suggestion en #2.

        je suggère de tester avec une ligne avant de tout modifier: les erreurs sont parfois plus visibles sur un code plus court.
        0
      4. @yg_beOk, je vais essayer cela cet après midi, pas de suite, car dans peu de temps je dois conduire mon épouse chez le dentiste, alors je verrai cela dès mon retour.
        Bon appétit si ce n'est fait.
        0
    2. Merci, je vais voir cela cet après midi. Dans peu de temps, je dois conduire mon épouse chez le dentiste, je ferai ça dès mon retour.
      Bon appétit si ce n'est fait
      0
      1. Me voici de retour.
        J'ai en effet retrouvé votre post #4, et c'est bien cela que j'avais tenté d'appliquer.

        je vois maintenant un problème avec "ligne" qui n'était spécifié nulle part (dans mon petit programme d'essai)
        j'ajoute donc la ligne : ligne=Sheets("magasin").Range("A" & Rows.Count) ...... +1
        qui devrait me faire descendre à chaque opération d'une ligne.
        Pour cela j'ai ajouté un DIM ligne as String
        et ça cale encore à ce niveau.
        0
        1. Contributeur
          fais-tu copier/coller du code suggéré?
          comment
          magasin
          devient-il
          "magasin"
          ?
          0
        2. @yg_beVoilà, je viens d'ôter tous les guillemets entourant les "magasin" et le code passe jusqu'au bout.
          J'ai mis la ligne pour compter les lignes et ai ajouter un petit msgbox qui affiche ce numéro de ligne afin de voir s'il a bien incrémenté. et là, tout fonctionne. Le programme ne se bloque plus . MAIS rien ne s'inscrit sur aucune des deux feuilles que j'ai créé comme feuille de destination.
          alors que ça fonctionnait lorsque j'avais Sheets("nom de l'onglet").range ...
          je n'ai fait que changer en magasin (sans guillements)
          0
      2. Oui j'avais fait un copier-coller, mais il me mettait la ligne "Sheets(magasin)... en rouge
        j'avais donc pensé que magasin devait être entre guillemets. en fait il y avait également un guillemet après &ligne) je l'ai ôté (car ça ne faisait pas la paire de guillemets)
        Maintenant le tout est écrit en noir, mais les mots range, value, sheets n'ont pas de majuscule donc je pense que ça ne devrait pas fonctionner ?
        je vais quand même essayer.

        Ah ! cette fois çi il a passé le cap de la première ligne et bloque sur ma ligne suivante :

        Sheets("magasin").Range("C" & ligne).Value = Sheets("Bon de Commande").Range("C5").Value 'nom

        devrais je oter tous les guillemets entourant magasin à chaque ligne ?
        et il me manque également la ligne qui me fait descendre d'une ligne à chaque opération.
        puis remettre la même que sur mes modules précédents ?
        0
        1. Contributeur
          Sheets("magasin")
          , c'est la feuille qui s'appelle magasin
          Sheets(magasin)
          , c'est la feuille dont le nom est dans la variable appelée magasin.

          je n'ai pas assez d'information pour te conseiller au sujet de "la ligne qui me fait descendre d'une ligne à chaque opération".
          0
      3. Bonjour,
        Merci de passer autant de temps pour m'aider !
        Le mieux est que je t'envoie mon fichier entier, mais cjoint ne le veut pas . Peut être trop gros ?
        Comment puis je te l'envoyer ? Si je pouvais avoir ton mail, je m'enverrais par Wetransfer.
        Merci et excellent weekend.
        0
        1. Contributeur
          la charte du forum décourage l'assistance hors du forum ou, je pense, par email.
          ton fichier fait vraiment plus de 15 Mo?
          peut-être
          transfernow
          ?
          0
      4. Non, mon fichier fait un peu plus d'un méga. Je ne savais pas que je pouvais envoyer aussi gros.
        Je vais donc te l'envoyer cet après midi.
        @+
        0
        1. en fait, j'avais mis plusieurs onglets sous forme de tableau ce qui a fortement alourdi l'ensemble.
          je suis en train de supprimer cette mise en forme et maintenant je vais pouvoir envoyer quelque chose de bien plus léger.mais c'est assez long, plus de trois minutes par onglet !
          je reviens
          0
          1. et voici mes lignes de code :

            Sub ArchiverBC()

            'archiver les Bons de commande dans l'historique clients et incrémenter le numéro de Bon de commande

            ligne = Sheets("Historique_Commande").Range("A" & Rows.Count).End(xlUp).Row + 1
            Sheets("Historique_Commande").Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value 'numero BC
            Sheets("Historique_Commande").Range("B" & ligne).Value = Sheets("Bon de Commande").Range("D3").Value 'Date
            Sheets("Historique_Commande").Range("C" & ligne).Value = Sheets("Bon de Commande").Range("C5").Value 'Nom
            Sheets("Historique_Commande").Range("D" & ligne).Value = Sheets("Bon de Commande").Range("E5").Value 'prénom
            Sheets("Historique_Commande").Range("E" & ligne).Value = Sheets("Bon de Commande").Range("C6").Value 'adresse

            Sheets("Historique_Commande").Range("F" & ligne).Value = Sheets("Bon de Commande").Range("C7").Value 'code postal

            Sheets("Historique_Commande").Range("G" & ligne).Value = Sheets("Bon de Commande").Range("C8").Value 'localité
            Sheets("Historique_Commande").Range("H" & ligne).Value = Sheets("Bon de Commande").Range("C9").Value 'téléphone
            Sheets("Historique_Commande").Range("I" & ligne).Value = Sheets("Bon de Commande").Range("E24").Value 'total TTC
            Sheets("Historique_Commande").Range("M" & ligne).Value = Sheets("Bon de Commande").Range("E32").Value 'Solde
            Sheets("Historique_Commande").Range("J" & ligne).Value = Sheets("Bon de Commande").Range("E26").Value 'Bancontact
            Sheets("Historique_Commande").Range("K" & ligne).Value = Sheets("Bon de Commande").Range("E27").Value 'Visa
            Sheets("Historique_Commande").Range("L" & ligne).Value = Sheets("Bon de Commande").Range("E28").Value 'Espèces
            Sheets("Historique_Commande").Range("N" & ligne).Value = Sheets("Bon de Commande").Range("B182").Value 'PRIX ACHAT
            Sheets("Historique_Commande").Range("S" & ligne).Value = Sheets("Bon de Commande").Range("D182").Value 'Fournisseur
            Sheets("Historique_Commande").Range("Q" & ligne).Value = Sheets("Bon de Commande").Range("E116").Value 'Coéfficient
            Sheets("Historique_Commande").Range("P" & ligne).Value = Sheets("Bon de Commande").Range("E115").Value 'Designation 1
            Sheets("Historique_Commande").Range("R" & ligne).Value = Sheets("Bon de Commande").Range("B149").Value 'Montant reprise
            Sheets("Historique_Commande").Range("T" & ligne).Value = Sheets("Bon de Commande").Range("A14").Value 'Designation 2
            Sheets("Historique_Commande").Range("U" & ligne).Value = Sheets("Bon de Commande").Range("A15").Value 'Désignation 3
            Sheets("Historique_Commande").Range("V" & ligne).Value = Sheets("Bon de Commande").Range("A16").Value 'Désignation 4
            Sheets("Historique_Commande").Range("W" & ligne).Value = Sheets("Bon de Commande").Range("A17").Value 'Désignation 5
            Sheets("Historique_Commande").Range("X" & ligne).Value = Sheets("Bon de Commande").Range("A18").Value 'Désignation 6
            Sheets("Historique_Commande").Range("Y" & ligne).Value = Sheets("Bon de Commande").Range("A19").Value 'Désignation 7
            Sheets("Historique_Commande").Range("Z" & ligne).Value = Sheets("Bon de Commande").Range("A20").Value 'Désignation 8
            Sheets("Historique_Commande").Range("AA" & ligne).Value = Sheets("Bon de Commande").Range("A21").Value 'Désignation 9
            Sheets("Historique_Commande").Range("AB" & ligne).Value = Sheets("Bon de Commande").Range("A22").Value 'Désignation 1
            Sheets("Historique_Commande").Range("AC" & ligne).Value = Sheets("Bon de Commande").Range("C11").Value 'reprise
            Sheets("Historique_Commande").Range("AD" & ligne).Value = Sheets("Bon de Commande").Range("C12").Value 'emporté
            Sheets("Historique_Commande").Range("AE" & ligne).Value = Sheets("Bon de Commande").Range("B24").Value & Sheets("Bon de Commande").Range("C24").Value 'date livraison

            'fin de la partie BON de COMMANDE

            'seconde partie : remplissage des lignes financement

            ligne = Sheets("Financements").Range("A" & Rows.Count).End(xlUp).Row + 1
            Sheets("Financements").Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value 'numero BC
            Sheets("Financements").Range("B" & ligne).Value = Sheets("Bon de Commande").Range("C5").Value 'nom
            Sheets("Financements").Range("C" & ligne).Value = Sheets("Bon de Commande").Range("E24").Value 'Prix de vente TTC
            Sheets("Financements").Range("D" & ligne).Value = Sheets("Bon de Commande").Range("E32").Value 'Montant à financer

            Sheets("Financements").Range("E" & ligne).Value = Sheets("Bon de Commande").Range("A3").Value 'Magasin
            'Sheets("Financements").Range("F" & ligne).Value = Sheets("Bon de Commande").Range("C8").Value 'localité
            Sheets("Financements").Range("G" & ligne).Value = Sheets("Bon de Commande").Range("B187").Value 'Agios

            Sheets("Financements").Range("J" & ligne).Value = Sheets("Bon de Commande").Range("D3").Value 'Date envoi
            Sheets("Financements").Range("K" & ligne).Value = Sheets("Bon de Commande").Range("D185").Value 'Bancontact

            If Sheets("Bon de Commande").CheckBox4.Value = "Vrai" Then
            Sheets("Financements").Range("H" & ligne).Value = "COFIDIS"
            Else
            Sheets("Financements").Range("H" & ligne).Value = "CETELEM"
            End If

            'remplissage de la feuille du magasin

            Dim magasin As String
            magasin = Sheets("Bon de Commande").[A3]
            Sheets(magasin).Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value
            ligne = Sheets(magasin).Range("A" & Rows.Count).End(xlUp).Row + 1

            MsgBox ActiveCell.Row 'pour afficher le n° de la ligne

            Sheets(magasin).Range("C" & ligne).Value = Sheets("Bon de Commande").Range("C5").Value 'nom
            Sheets(magasin).Range("G" & ligne).Value = Sheets("Bon de Commande").Range("C8").Value 'Localité
            Sheets(magasin).Range("H" & ligne).Value = Sheets("Bon de Commande").Range("C9").Value 'Téléphone
            Sheets(magasin).Range("I" & ligne).Value = Sheets("Bon de Commande").Range("D182").Value 'Fournisseur
            Sheets(magasin).Range("D" & ligne).Value = Sheets("Bon de Commande").Range("E5").Value 'Prénom

            Sheets(magasin).Range("B" & ligne).Value = Sheets("Bon de Commande").Range("D3").Value 'date
            Sheets(magasin).Range("E" & ligne).Value = Sheets("Bon de Commande").Range("C6").Value 'adresse
            Sheets(magasin).Range("F" & ligne).Value = Sheets("Bon de Commande").Range("C7").Value 'code postal
            Sheets(magasin).Range("J" & ligne).Value = Sheets("Bon de Commande").Range("A14").Value 'Description Ligne 1
            Sheets(magasin).Range("K" & ligne).Value = Sheets("Bon de Commande").Range("A15").Value 'Description Ligne 2
            Sheets(magasin).Range("L" & ligne).Value = Sheets("Bon de Commande").Range("A16").Value 'Description ligne 3
            Sheets(magasin).Range("M" & ligne).Value = Sheets("Bon de Commande").Range("A17").Value 'Description ligne 4
            Sheets(magasin).Range("N" & ligne).Value = Sheets("Bon de Commande").Range("A18").Value 'Description ligne 5
            Sheets(magasin).Range("O" & ligne).Value = Sheets("Bon de Commande").Range("A19").Value 'Description ligne 6
            Sheets(magasin).Range("P" & ligne).Value = Sheets("Bon de Commande").Range("A20").Value 'Description ligne 7
            Sheets(magasin).Range("Q" & ligne).Value = Sheets("Bon de Commande").Range("A21").Value 'Description ligne 8
            Sheets(magasin).Range("R" & ligne).Value = Sheets("Bon de Commande").Range("A22").Value 'Description ligne 9

            Sheets(magasin).Range("S" & ligne).Value = Sheets("Bon de Commande").Range("E24").Value 'Prix de vente

            Sheets(magasin).Range("U" & ligne).Value = Sheets("Bon de Commande").Range("B182").Value 'Prix Achat HT
            Sheets(magasin).Range("V" & ligne).Value = Sheets("Bon de Commande").Range("M29").Value 'total acomptes

            Sheets(magasin).Range("W" & ligne).Value = Sheets("Bon de Commande").Range("E32").Value 'Financement
            Sheets(magasin).Range("Y" & ligne).Value = Sheets("Bon de Commande").Range("B187").Value 'Agios

            Sheets(magasin).Range("AB" & ligne).Value = Sheets("Bon de Commande").Range("D185").Value 'Vendeur

            Sheets(magasin).Range("AD" & ligne).Value = Sheets("Bon de Commande").Range("E112").Value 'Livraison montant

            If Sheets("Bon de Commande").CheckBox4.Value = "Vrai" Then
            Sheets(magasin).Range("X" & ligne).Value = "COFIDIS"
            Else
            Sheets(magasin).Range("X" & ligne).Value = "CETELEM"
            End If

            If Sheets("Bon de Commande").Range("D112").Value = "OUI" Then
            Sheets(magasin).Range("AC" & ligne).Value = "OUI"
            Else
            Sheets(magasin).Range("AC" & ligne).Value = "NON"
            End If
            '----------------------------------------------------------------------------------------------------------
            'Coloriage en fond jaune si argent rentré

            '----------------------------------------------------------------------------------------------------------
            'Quatrième partie : Planning

            'Dim mois As String, magasin As String, colonne As Range, cible As Range
            'mois = Worksheets("BON DE COMMANDE").[B24]
            'magasin = Worksheets("BON DE COMMANDE").[A3]
            'Set colonne = Worksheets("PLANNING").[B1]
            'Do While colonne <> ""
            ' If UCase(colonne) = UCase(mois) Then
            ' If colonne.Offset(1) = magasin Then
            ' Set cible = colonne.Offset(2)
            ' Do While cible.Offset(1) <> ""
            ' Set cible = cible.Offset(10)
            ' Loop
            ' cible = Worksheets("BON DE COMMANDE").[C5]
            ' cible.Offset(1) = Worksheets("BON DE COMMANDE").[E1]
            ' '....
            ' Exit Do
            'End If
            ' End If
            'Set colonne = colonne.Offset(, 1)
            'Loop

            '----------------------------------------------------------------------------------------------------------

            'archivage du bon de commande

            'Sub EnregistrementFacture()

            Dim NomDossier As String
            Dim Chemin As String

            NomDossier = Application.InputBox("ArchivageFactures:", "Année ?")

            Chemin = "C:\Users\bs382\OneDrive\Desktop\ArchivageFactures\" & NomDossier & "\"

            If NomDossier = "" Then Exit Sub

            ActiveSheet.ExportAsFixedFormat Type:=xlTypexlsm, Filename:= _
            Chemin & "Bon de Commande N° _" & Range("E1").Value & " " & Range("C5").Value & ".xlsm", quality:= _
            xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, _
            from:=1, to:=5, openafterpublish:=False

            '----------------------------------------------------------------------------------------------------------

            Sheets("Bon de Commande").Range("C5").ClearContents 'vider l'entete client-Nom
            Sheets("Bon de Commande").Range("E5").ClearContents 'vider l'entete client-Prénom
            Sheets("Bon de Commande").Range("C6:E10").ClearContents 'vider l'entete client-reste de l'entete
            Sheets("Bon de Commande").Range("A14:E22").ClearContents 'vider le corps de facture
            Sheets("Bon de Commande").Range("E29").ClearContents 'vider l'accompte
            Sheets("Bon de Commande").Range("E26:E28").ClearContents 'vider les accomptes
            Sheets("Bon de Commande").Range("C34:D34").ClearContents 'vider le montant mensuel

            Sheets("Bon de Commande").CheckBox1.Value = False ' vider les cases à cocher-Bancontact
            Sheets("Bon de Commande").CheckBox2.Value = False 'vider les cases à cocher-Visa
            Sheets("Bon de Commande").CheckBox3.Value = False 'vider les cases à cocher-Espèces
            Sheets("Bon de Commande").CheckBox4.Value = False 'vider les cases à cocher-Cofidis
            Sheets("Bon de Commande").CheckBox5.Value = False 'vider les cases à cocher-Cetelem
            Sheets("Bon de Commande").CheckBox6.Value = False 'vider les cases à cocher-Secci

            Sheets("Bon de Commande").Range("E1").Value = Sheets("Bon de Commande").Range("E1").Value + 1 'incrémenter le numéro de Bon de commande

            End Sub
            0
            1. la premiere partie envoie les infos recueillies du bon de commande vers l'historique commande. Ici tout fonctionne.
              puis, j'ai une partie "financements" également données venant du BC. Ici tout fonctionne
              et après, l'onglet relatif au magasin. Actuellement j'ai créé 4 copies de cet onglet : Facebook, Instagram, Ans et Dinant .
              et selon le lieu du magasin (spécifié en A3 sur le BC) je voudrais que mes données se recopient sur la feuille Adhoc..
              après cela, j'ai une partie pas encore terminée concernant le planning des livraisons.
              Puis j'archive mon bon de commande dans un dossier sur le bureau (afin de pouvoir en faire à nouveau une copie si nécessaire) - ceci aussi fonctionne.
              et en dessous de cela, je vide toutes les cases et j'incrémente de 1 le n° de BC afin de passer au suivant.

              Donc je n'ai qu'une numérotation pour tous les magasins.
              Voilà, j'espère que tu pourras voir de quoi il s'agit.
              Merci beaucoup
              0
            2. Contributeur
              @yg_bececi me semble bizarre:
              Sheets(magasin).Range("A" & ligne).Value = Sheets("Bon de Commande").Range("E1").Value
              ligne = Sheets(magasin).Range("A" & Rows.Count).End(xlUp).Row + 1

              ne faudrait-il pas inverser l'ordre de ces lignes?
              0
            3. @yg_bej'essaie de suite et je reviens
              0
          2. c'est en effet plus logique, mais cela ne change rien. il n'y a rien qui s'inscrit sur la feuille idoine.
            Ici j'avais fait un BC avec FACEBOOK comme magasin et je n'ai rien sur cette feuille.

            comment faire pour afficher les lignes comme toi, avec les numéros, selon la charte de CCM ?
            0
            1. Contributeur
              comme expliqué en #30.
              0
            2. Contributeur
              comme tu n'indiques pas qu'il y a un message d'erreur, je suppose qu'il n'y en a pas.
              je suspecte alors que les données s'inscrivent bien dans la feuille idoine, mais que cela s'écrit plus bas dans la feuille.
              0
            3. @yg_beAh ça , j'ai pas regardé plus bas que l'écran. Je vais regarder.
              Merci.
              Si c'est cela, devrais je supprimer les lignes précédent cet endroit ?
              0
            4. @yg_bedans les explications données, il est écrit que pour le langage VBA il faut prendre le BASIC, c'est ce que j'ai fait, en suivant ce qu'ils disaient,
              mettre la balise avant le code, c'est ce que j'ai fait, mais ça ne fonctionne pas comme ça devrait, mes lignes ne se numérotent pas, et mes codes ne se colorient pas.
              0
          3. Bonsoir,
            en effet, mes lignes sont inscrites bien plus bas sur la feuille en question.
            ligne 88 pour une ligne 94 pour l'autre.

            Je vais donc effacer mes lignes précédentes.
            Je pense que maintenant ça va fonctionner normalement.
            Merci beaucoup pour ton aide.
            Je vais intégrer les autres magasins (il y en a 9 !)
            et encore faire quelques essais.

            Après cela, je dois faire une feuille récapitulative pour le Boss, mais je pense que l'historique commandes devrait être bon pour cela.
            et ensuite, je vais m'attaquer au planning des arrivées et des livraisons.

            Merci encore, bonne fin de week end et @+
            0
            1. Contributeur
              si ceci fonctionne, peux-tu marquer la discussion comme résolue?
              0
          4. Ok merci je vais le faire.
            Encore un grand merci pour ton aide.
            Decidement, CCM est formidable.
            0