Macro copier sur ligne suivante [Résolu/Fermé]

Signaler
-
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
-
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

6 réponses

Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
527
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

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65449 internautes nous ont dit merci ce mois-ci

Messages postés
9490
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 juillet 2020
1 849
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
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65449 internautes nous ont dit merci ce mois-ci

Merci cela semble en effet mieux fonctionner
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
527
cela aussi fonctionne:

ligne = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row + 1
Messages postés
9490
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 juillet 2020
1 849
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
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
527
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
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 ?
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
527
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
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
527
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...
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
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020
527
en vba il faut éviter les cellules fusionnées!

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

@+ Le Pivert
>
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020

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.
>
Messages postés
6823
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
1 juillet 2020

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 ..
Merci à tous pour votre temps et votre aide.
Et à bientôt peut être pour de nouvelles aventures ;)
Messages postés
1984
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
1 juillet 2020
313
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 : https://www.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