Problème de Macro

Fermé
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 - 23 janv. 2019 à 08:50
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 - 1 févr. 2019 à 10:31
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.
A voir également:

6 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 23 janv. 2019 à 09:34
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:

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

0
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 4
23 janv. 2019 à 10:04
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..

0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
23 janv. 2019 à 10:57
voilà un exemple

https://www.cjoint.com/c/IAxj4FxxiQQ
0
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 4
24 janv. 2019 à 10:19
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

0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
24 janv. 2019 à 10:55
Cela ne ressemble à rien!!!!

Quelle est la logique????

Pour faire une macro, il faut une certaine logique. Là il n'y a aucune colonne référencée!
Aucune ligne non plus.

Poste un classeur avec plusieurs noms pour comprendre la logique des saisies

@+
0
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 4
24 janv. 2019 à 12:16
J'espère que ceci peu convenir.
https://www.cjoint.com/c/IAyln5pmzs4
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
24 janv. 2019 à 12:34
aucune amélioration dans la compréhension!!!!

Où sont les noms dans la feuille Facture: VAN BELLE et DE MIL ???

Où sont les villes dans la feuille Facture: TOURNAI et BRUXELLES???

pour pouvoir les retranscrire dans la feuille Listing

C'est du grand n'importe quoi
0
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 4
24 janv. 2019 à 13:02
Désolé, je ne comprend pas ce que tu désires avoir ….
La feuille facture représente une seule facture.(la n° 121)
A la facture 122 les données seront autres.

Me suis-je bien exprimé ? désires-tu autre chose ?

Merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
24 janv. 2019 à 13:49
Pour que cela fonctionne, il faut qu'impérativement les données de la Feuille Facture soient dans les mêmes cellules:

https://www.cjoint.com/c/IAymVTc0beQ

@+
0
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 4
31 janv. 2019 à 15:53
Erreur de compilation.
Instruction incorrecte dans une procédure.
....
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
31 janv. 2019 à 18:15
Sans plus de précision, impossible de te répondre.
Expose le problème que tu rencontres, en expliquant ce que tu veux obtenir.

.....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 4
1 févr. 2019 à 10:06
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

0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
1 févr. 2019 à 10:22
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:

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à
0
daniel22 Messages postés 334 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 12 janvier 2024 4
1 févr. 2019 à 10:31
Ok. Merci pour ta réponse.

Désolé de t'avoir ennuyé.

Bye
0