Menu

Macro copier sur ligne suivante [Résolu]

- - Dernière réponse : cs_Le Pivert
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
- 21 janv. 2019 à 12:04
Bonjour,
Je cherche à faire un tableau historique de facture à partir des factures que je remplis.
Du coup j'ai trouvé des formules pour l'éditeur de macro telle que

ligne=Sheets("Archives"). Range("A2").End(xlDown).Row+1 (pour le tableau historique de facture)

Sheets("Archives").Range("A"&ligne).value=Sheets("Facture").Range("Cellule à copier").value

La formule est censée marcher mais lorsque je la teste l'erreur semble résider dans la selection de la ligne (il m'indique une ligne 100000 et des poussières).

Auriez vous une solution et désolé si je m'exprime mal.

Merci d'avance



Configuration: Windows / Chrome 71.0.3578.98
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
363
1
Merci
Bonjour,

Chez moi cela fonctionne:

Dim ligne As Long
ligne = Sheets("Archives").Range("A2").End(xlDown).Row + 1 '(pour le tableau historique de facture)
MsgBox ligne
Sheets("Archives").Range("A" & ligne).Value = Sheets("Facture").Range("A1").Value

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39471 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Le Pivert
Messages postés
8947
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
21 mai 2019
1558
1
Merci
Bonjour à tous les deux

Essaies une autre syntaxe pour déterminer ligne (pas garanti bien sûr)
ligne = Sheets("Archives").Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1

Cdlmnt

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39471 internautes nous ont dit merci ce mois-ci

Merci cela semble en effet mieux fonctionner
cs_Le Pivert
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
363 -
cela aussi fonctionne:

ligne = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row + 1
ccm81
Messages postés
8947
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
21 mai 2019
1558 -
Salut Le_Pivert

ligne = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row + 1
Effectivement ceci devrait bien sûr fonctionner, mais sur le fichier original de Atn, chez moi, ça donne ligne = 65537 (excel 2003), alors que l'autre proposition donne bien ligne = 2

Cdlmnt
cs_Le Pivert
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
363 -
Salut ccm81

Tu as tout à fait raison, je viens d'en avoir la preuve dans ma dernière macro postée, avec des lignes masquées.

Merci

@+ Le Pivert
Commenter la réponse de ccm81
0
Merci
Je ne m’attendais pas à des réponses aussi rapides. Je vais revoir ça demain mais au cas où, cela peut il provenir d’une différence entre Mac et PC ?
cs_Le Pivert
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
363 -
m'indique une ligne 100000 et des poussières).


Fait Ctrl Fin au clavier pour voir la dernière ligne

l'erreur vient peut-être de là!
Je n’ai plus le fichier sous les yeux (étant dans le train) mais effectivement l’erreur pourrait venir de là puisqu’en faisant ctrl+bas cela me renvoyait tout en bas du tableau.
Si c’est le cas comment corriger ça ?
Étant donné que dans l’etat Le tableau est vide, hormis la description de chaque colonne en ligne 1
cs_Le Pivert
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
363 -
Il peut y avoir un bug qui a crée des lignes, voir ceci pour les supprimer

https://www.pcastuces.com/pratique/astuces/2726.htm
Commande bas me renvoie toujours au fin fond du tableau malgré cette méthode...
Commenter la réponse de Atn
0
Merci
Bonjour,
J'ai toujours des bug avecles formules utilisées sous VBA... Du coup j'ai créé le lien vers mon fichier.
https://www.cjoint.com/c/IAtmdQugLEQ
A terme il y aura davantage d'infos mais si ça ne marche pas pour les premières...
Je n'ai donc pas tout écrit
cs_Le Pivert
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
363 -
en vba il faut éviter les cellules fusionnées!

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

@+ Le Pivert
> cs_Le Pivert
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
-
Il va falloir m'expliquer car ta formule pour le bouton réinitialiser est la même que la mienne......
ET
La tienne fonctionne sur le fichier que tu m'as renvoyé mais une fois que je copie colle la formule dans mon "vrai" fichier la formule ne fonctionne pas.
> cs_Le Pivert
Messages postés
6033
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
-
En fait je ne sais pas écrire ClearContents (ClearContests*)... du coup c'est pour ça que cela ne marchait pas...
VOILA VOILA
En tout cas merci pour tout
Oui je sais mais sur un autre fichier sans cellule fusionnée je rencontre les memes difficultés ..
Commenter la réponse de Atn
0
Merci
Merci à tous pour votre temps et votre aide.
Et à bientôt peut être pour de nouvelles aventures ;)
Commenter la réponse de Atn
Messages postés
632
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
21 mai 2019
62
-1
Merci
Bonjour,
Un exemple de ton fichier serait le bienvenu accompagné d’explications
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com

Va sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse..
Cordialement
Fait
https://www.cjoint.com/c/IAtmdQugLEQ
Commenter la réponse de JCB40