Problème de Macro
daniel22
Messages postés
335
Date d'inscription
Statut
Membre
Dernière intervention
-
daniel22 Messages postés 335 Date d'inscription Statut Membre Dernière intervention -
daniel22 Messages postés 335 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un classeur excel comprenant deux onglets.
Le premier "Facture" et le deuxième "Listing".
Je souhaiterais que, via une macro, les données N° facture, date, destinataire et montant de l'onglet "Facture" soient injectés dans la feuille "Listing"
Je suis en excel 2016 et je débute dans les macros...
Merci d'avance.
J'ai un classeur excel comprenant deux onglets.
Le premier "Facture" et le deuxième "Listing".
Je souhaiterais que, via une macro, les données N° facture, date, destinataire et montant de l'onglet "Facture" soient injectés dans la feuille "Listing"
Je suis en excel 2016 et je débute dans les macros...
Merci d'avance.
A voir également:
- Problème de Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
6 réponses
Bonjour,
il faut faire une boucle sur toutes les lignes de la feuille Facture voir ceci:
https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/
Tu fais Alt F11 sur ta feuille Facture pour accéder à l'éditeur, tu insères un module dans lequel tu mets ce code:
Tu reviens sur ta feuille Facture
Tu vas dans le Ruban Developpeur Inserer un Bouton Control Formulaire, tu le mets sur ta feuille, une boite de message s'ouvre, tu sélectionnes For_X_to_Next_Ligne
La macro est opérationnelle
Tu enregistres Classeur Excel prenant en charge les macros
il faut faire une boucle sur toutes les lignes de la feuille Facture voir ceci:
https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/
Tu fais Alt F11 sur ta feuille Facture pour accéder à l'éditeur, tu insères un module dans lequel tu mets ce code:
Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, FL2 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set FL1 = Worksheets("Facture") Set FL2 = Worksheets("Listing") NoCol = 1 'lecture de la colonne A For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) 'mettre à la place du 1 ta cellule de départ Var = FL1.Cells(NoLig, NoCol) FL2.Cells(NoLig, NoCol) = FL1.Cells(NoLig, NoCol) FL2.Cells(NoLig, NoCol + 1) = FL1.Cells(NoLig, NoCol + 1) FL2.Cells(NoLig, NoCol + 2) = FL1.Cells(NoLig, NoCol + 2) FL2.Cells(NoLig, NoCol + 3) = FL1.Cells(NoLig, NoCol + 3) Next Set FL1 = Nothing End Sub
Tu reviens sur ta feuille Facture
Tu vas dans le Ruban Developpeur Inserer un Bouton Control Formulaire, tu le mets sur ta feuille, une boite de message s'ouvre, tu sélectionnes For_X_to_Next_Ligne
La macro est opérationnelle
Tu enregistres Classeur Excel prenant en charge les macros
Bonjour Le Pivert,
Merci d'avoir répondu.
Comme je l'ai dit dans ma question, le débute avec les macros....
J'ai deux questions : dans ta formule, je ne distingue pas ou tu désignes les données que j'ai besoin (n° facture, montant, ...)
Que veux tu dire par : tu insères un module... car quand je fais Alt F11 j'ai déja 2 macros..
Merci d'avoir répondu.
Comme je l'ai dit dans ma question, le débute avec les macros....
J'ai deux questions : dans ta formule, je ne distingue pas ou tu désignes les données que j'ai besoin (n° facture, montant, ...)
Que veux tu dire par : tu insères un module... car quand je fais Alt F11 j'ai déja 2 macros..
Je ne suis sans doute pas très doué, mais je ne comprend pas.
Je joins un modèle de ce que je souhaiterais avoir...
https://www.cjoint.com/c/IAyjsheLx04
Merci pour ton aide
Je joins un modèle de ce que je souhaiterais avoir...
https://www.cjoint.com/c/IAyjsheLx04
Merci pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
REbonjour et désolé pour le dérangement,
J'ai essayé de comprendre mais ….c'est pas brillant…(en même temps, à mon âge...on a plus 20 ans)
Dans le fichier que tu m'as transmis, j'ai fais ALT F11...mais je ne vois rien à l'exception d'un carré.
Dans le fichier que je transmets maintenant, j'ai essayer de mettre le code….mais problème ,ça ne fonctionne pas et je ne trouves pas la solution.
En résumé, l'impression semble marcher, mais je souhaiterais 2 exemplaires au lieu de 1.
Delete + N° semble fonctionner.
Sauvegarde : doit sauvegarder dans la feuille "N°" les données reprises en tête de colonne, une ligne par facture.
Merci d'avance pour ton aide.
https://www.cjoint.com/c/IBbjeUk6brx
J'ai essayé de comprendre mais ….c'est pas brillant…(en même temps, à mon âge...on a plus 20 ans)
Dans le fichier que tu m'as transmis, j'ai fais ALT F11...mais je ne vois rien à l'exception d'un carré.
Dans le fichier que je transmets maintenant, j'ai essayer de mettre le code….mais problème ,ça ne fonctionne pas et je ne trouves pas la solution.
En résumé, l'impression semble marcher, mais je souhaiterais 2 exemplaires au lieu de 1.
Delete + N° semble fonctionner.
Sauvegarde : doit sauvegarder dans la feuille "N°" les données reprises en tête de colonne, une ligne par facture.
Merci d'avance pour ton aide.
https://www.cjoint.com/c/IBbjeUk6brx
Ce n'est pas sérieux, je t'ai posté un classeur qui fonctionne ici et tu n'en tiens pas compte!
https://forums.commentcamarche.net/forum/affich-35823061-probleme-de-macro#13
on trouve ce code:
Tu as changé le code que je t'avais posté, cela ne sert à rien de se décarcasser!
Si tu avez lu le site que je t'ai proposé tu aurais appris que l'on ne met rien avant Option Explicit.
Ensuite tu mets la feuille Listing alors qu'elle n'existe pas dans ton classeur, c'est la feuille Clients
Tant que tu n'auras pas un peu potassé les bases de vba on ne pourras pas avancer!
Voilà
https://forums.commentcamarche.net/forum/affich-35823061-probleme-de-macro#13
on trouve ce code:
Private Sub CommE18() End Sub Option Explicit Private Sub CommandButton1_Click() Dim FL1 As Worksheet, FL2 As Worksheet Dim ligne As Long 'dernière ligne ligne = Sheets("Listing").Range("A" & Rows.Count).End(xlUp).Row + 1 Set FL1 = Worksheets("Facture") Set FL2 = Worksheets("Listing") FL2.Cells(ligne, 1) = FL1.Cells(18, 5) 'N°facture FL2.Cells(ligne, 2) = FL1.Cells(9, 5) 'Destinataire FL2.Cells(ligne, 4) = FL1.Cells(13, 5) 'Localité FL2.Cells(ligne, 5) = FL1.Cells(39, 7) 'Montant FL2.Cells(ligne, 6) = FL1.Cells(39, 4) 'TVA End Sub
Tu as changé le code que je t'avais posté, cela ne sert à rien de se décarcasser!
Si tu avez lu le site que je t'ai proposé tu aurais appris que l'on ne met rien avant Option Explicit.
Ensuite tu mets la feuille Listing alors qu'elle n'existe pas dans ton classeur, c'est la feuille Clients
Tant que tu n'auras pas un peu potassé les bases de vba on ne pourras pas avancer!
Voilà