VBA insérer et copier des données

Résolu
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un tableau avec un numéro de facture en colonne A. je souhaite copier cette ligne 2 fois en dessous et ce pour toutes mes lignes jusqu'à la fin de mon tableau qui peut être de taille différente en fonction de la période.
Merci de votre aide
marie


Configuration: Windows / Edge 94.0.992.31
A voir également:

21 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Mais il me semble qu'il y a un problème
Iu n'as pas rêvé, il y a bien incrémentation
Essaies d'ajouter
,Type:=xlFillCopy
aux deux lignes copiant vers le bas (AutoFill....), n'oublies pas la virgule !

Cdlmnt
2
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

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
0
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le lien du fichier où j'ai déjà fait un début de code.
En fait je récupère un fichier excel d'une application de vente, et je souhaite en faire un fichier csv pour importer des écritures dans un logiciel comptable.
Pour cela je dois dupliquer ma ligne 3 fois, ce qui me permettra de compléter les colonnes Compte, débit et crédit en automatique. Ma première ligne je devrais indiquer dans compte 707 et le montant HT dans la colonne débit. Sur la deuxième ligne je devrais indiquer le compte 4457 et le montant de TVA dans la colonne débit et enfin sur la troisième ligne, copier le compte de la colonne code client et le montant TTC dans la colonne crédit.
je ne fais pas souvent de programmation et j'ai du mal.
Merci de ton aide



https://www.cjoint.com/c/KIAn0zzwLTK
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Une question

Pour l'insertion des lignes
Tu dis : Pour cela je dois dupliquer ma ligne 3 fois,
ce qui te frea 4 lignes "identiques"
plus loin : enfin sur la troisième ligne
Tu veux 3 ou 4 lignes"identiques" ???

Cdlmnt
0

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

Posez votre question
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Je veux 3 lignes identiques
Je me suis mal exprimée
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
ok

pour le moment, j'en suis là
https://www.cjoint.com/c/KIApmq7XPYB
places toi dans la feuille test pour lancer la macro
tu dis

Cdlmnt
0
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Oui c'est parfait.
J'ai vu que tu avais changé ce que j'avais fait, je me doutais bien qu'on pouvait mieux faire ;-)
Tu as vu qu'il y avait un onglet avec le fichier tel qu'il doit être pour EBP.
Merci
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
'ai vu que tu avais changé ce que j'avais fait,
oui, je me suis permis ;-)

Tu as vu qu'il y avait un onglet avec le fichier tel qu'il doit être pour EBP.
oui c'est sheets(4)
0
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai essayé de comprendre ce que tu as fait ;-)
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
A tester
https://www.cjoint.com/c/KIAp6WBINjB

Là, je plie boutique jusqu'à ce soir

Cdlmnt
0
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Merci
Mais il me semble qu'il y a un problème, les montants HT et TTC ne sont pas identiques sur les 3 lignes, de même qu'il y a comme un incrémentation sur le numéro, et la date.
Peux tu voir pour modifier stp
Merci d'avance
0
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Je n'étais plus derrière l'ordi lors de ta réponse.
Je viens de modifier et c'est parfait. Ca fonctionne parfaitement, juste c'est un peu long.
Mille mercis, tu m'as bien aidé
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

juste c'est un peu long
Combien de temps et pour combien de lignes au départ ?

Cdlmnt
0
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Pour une vingtaine de lignes, j'ai chronométré 38 secondes.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Whaou, il y a un pb quelque part

Avec ton fichier, (16 lignes), ça met 0.04 s avec mon vieil excel 2003 et sur ma vénérable machine (12 ans d'âge)

Je t'ai écrit une autre version qui devrait être plus rapide 0.02 s chez moi ; tout se fait en mémoire et affiche le tableau en un coup (par de suppression de colonne d'insertion de lignes , ...)
Tu te mets dans la feuille TestRapide (la ligne de titre est mise "à la main")
https://www.cjoint.com/c/KIBoOgA2NWB
Pour comparer tu peux depuis la feuille Test relancer l'ancienne version( Ctrl+k)

Le pb vient peut être du fait que j'ai dû passer par le convertisseur (excel 2007 ou +) .xlsm > .xls (excel 2003) pour ouvrir ton fichier
A partir d'un fichier créé avec ta version d'excel, tu copies les modules 3 et 4, ça devrait aller mieux

Cdlmnt
0
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Oui effectivement c'est très rapide. Par contre j'ai vu qu'il y avait une ligne en haut du fichier. Si j'ai bien compris, les données que je récupère sont à copier dans un onglet dont le nom est défini dans le code puis je lance la macro ?
Toutefois, je te joins mon fichier de récupération de données car j'ai une nouvelle colonne que je dois conserver : date d'échéance. Alors j'avais modifié ta précédente macro mais là j'ai peur de faire des bêtises ;-)
https://cjoint.com/c/KICfvaiiWjK
Merci bcp
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Si j'ai bien compris, les données que je récupère sont à copier dans un onglet dont le nom est défini dans le code puis je lance la macro ?
J'ai fait ça par commodité (pour moi !), mais ce serait bien que tu réfléchisses au scénario pour la récupération des données transférées.
Tu dis
Bon, je regarde ton nouveau (grrr) fichier

RQ. as tu essayé la procédure ok ? si oui, ça donne quoi comme temps d'exécution ?

Cdlmnt
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
La macro sur ton nouveau fichier (Ctrl+t pour lancer) à tester
https://www.cjoint.com/c/KIClZ5HyoRB

Maintenant, à toi de définir comment et où tu veux le résultat du transfert

Cdlmnt
0
marieg58 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Merci mille fois. C'est absolument génial.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
juste une question : qu'en est il au niveau du temps d'exécution ?

Bonne soirée
0