Macro copier sur ligne suivante

Résolu/Fermé
atn - 18 janv. 2019 à 17:03
cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022 - 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

6 réponses

cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022 723
18 janv. 2019 à 17:12
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
ccm81 Messages postés 10508 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 1 décembre 2022 2 330
Modifié le 19 janv. 2019 à 21:11
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 cela semble en effet mieux fonctionner
0
cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022 723
20 janv. 2019 à 08:34
cela aussi fonctionne:

ligne = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row + 1
0
ccm81 Messages postés 10508 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 1 décembre 2022 2 330
20 janv. 2019 à 18:49
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
0
cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022 723
Modifié le 21 janv. 2019 à 12:07
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
0
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 ?
0
cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022 723
18 janv. 2019 à 17:30
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à!
0
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 ?
0
Étant donné que dans l’etat Le tableau est vide, hormis la description de chaque colonne en ligne 1
0
cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022 723
18 janv. 2019 à 17:55
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
0
Commande bas me renvoie toujours au fin fond du tableau malgré cette méthode...
0
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
0
J'ai toujours l'erreur 1004 pour l'archivage
et je souhaitais faire un bouton pour réinitialiser les factures et incrémenter le numéro de facture et là j'ai une erreur 438...
0
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
0
cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022 723
19 janv. 2019 à 19:28
en vba il faut éviter les cellules fusionnées!

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

@+ Le Pivert
0
Atn > cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022
19 janv. 2019 à 23:04
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.
0
Atn > cs_Le Pivert Messages postés 7860 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 2 décembre 2022
19 janv. 2019 à 23:18
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
0

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

Posez votre question
Merci à tous pour votre temps et votre aide.
Et à bientôt peut être pour de nouvelles aventures ;)
0
JCB40 Messages postés 2663 Date d'inscription lundi 2 juillet 2018 Statut Membre Dernière intervention 25 novembre 2022 466
18 janv. 2019 à 17:10
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
-1
Fait
https://www.cjoint.com/c/IAtmdQugLEQ
0