Création d'une macro
Eme
-
enilemef Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
enilemef Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Création d'une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
2 réponses
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 ;)
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 ;)
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
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
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
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)
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