Création d'une macro

Eme -  
enilemef Messages postés 3 Statut Membre -
Bonjour,

Je travaille sur un document excel afin de faire de la facturation et je voudrais savoir si il est possible de faciliter cette facturation à l'aide d'une macro.

Je m'explique, mon document se compose :

- d'une première feuille qui contient la base de donnée avec les renseignements des personnes à facturer, nom, adresse ...

- d'une seconde feuille qui est ma facture mise en page et prête à imprimer, lorsque je rentre le nom d'une personne dans une cellule particulière la totalité de la facture se remplie selon la base de donnée, à l'aide de la fonction =recherchev liée à la feuille 1.

Mon idée serait de créer une macro qui ferait descendre d'une ligne à la fois la première colonne de ma première feuille et d'affecter cette macro a une forme de flèche sur ma feuille n°2.

Je ne sais pas si c'est très clair, mais lors de ma facturation je rentre la formule ='Feuille1'!A1 qui correspond au premier nom de ma liste, l'idée serait qu'en appuyant sur un "bouton" la formule devienne ='Feuille1'!A2 et ainsi de suite, tout en restant sur la feuille de facturation, pour ne pas avoir à changer de feuille à chaque fois ce qui me fait perdre un temps fou.

C'est la première fois que je pose une question ici, j'espère avoir été assez claire et que quelqu'un arrivera à résoudre mon problème.

Merci beaucoup d'avance

2 réponses

  1. Kutska Messages postés 9 Statut Membre 1
     
    Bonjour,

    Dans ta feuille 2, insert un flèche. Ensuite clic droit sur ta flèche puis "Affecter une macro...", "Nouvelle"

    Puis colle ça :

    Sub Descendre()

    Sheets("Feuil1").Select 'Selection de la feuille 1
    Rows("1:1").Select 'Selection de la ligne 1
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'Insertion d'une nouvelle ligne
    Range("A1").Select
    Sheets("Feuil2").Select 'Selection de la feuille 2

    End Sub

    Si un message du style : "L'indice n'appartient pas à la sélection, modifie le nom des feuilles (Feuil1, Feuil2) entre guillemets dans la macro.

    J'espère que c'est bien ce que tu souhaitais ;)
    1
    1. enilemef Messages postés 3 Statut Membre
       
      Merci de votre réponse, je viens d'essayer mais ce n'est pas tout à fait ce dont je parlais, je pense que j'ai du mal à expliquer mon idée.

      L'idée est de se placer dans la colonne 1 et de descendre de ligne simplement, la feuille 1 est remplie de données et je voudrais qu'en cliquant sur ma forme, la cellule sélectionnée sur ma première feuille descende.

      En gros, que ma cellule dans la feuille 2 passe de =Feuille 1 A1 à = Feuille 1 A2 et ainsi de suite
      0
    2. Kutska Messages postés 9 Statut Membre 1
       
      Essaye avec ça :

      Sheets("Feuil1").Select
      ActiveCell.Offset(1, 0).Select
      Sheets("Feuil2").Select

      Par contre sélectionne bien une cellule A, car la macro sélectionne la cellule en dessous de la cellule active (la cellule sélectionnée au départ)
      0
    3. enilemef Messages postés 3 Statut Membre
       
      Merci pour votre aide, j'ai trouvé une solution

      Sub Facture()
      Dim Plage As Range, C As Range
      With Sheets("BDD 2018")
      Set Plage = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
      End With
      With Sheets("Facture")
      If .[E6] = "" Then
      .[E6].Value = Plage(1, 1)
      Else
      Set C = Plage.Find(.[E6])
      If C Is Nothing Then
      MsgBox "Saisie incorrecte"
      Exit Sub
      End If
      Set C = C.Offset(1)
      If C = "" Then
      MsgBox "Traitement terminé"
      Exit Sub
      Else
      .[E6] = C.Value
      End If
      End If
      End With
      End Sub
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour à tous les deux

    Pas très clair, et si macro il doit y avoir, il faut connaitre la structure exacte des données
    Peux tu envoyer un bout de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
    1) Tu vas dans https://www.cjoint.com/
    2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
    3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
    4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
    en bleu souligné ; tu le sélectionnes et tu fais "Copier"
    5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".

    Cdlmnt
    1