Macro copier sur ligne suivante

Résolu
atn -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1. Atn
       
      Merci cela semble en effet mieux fonctionner
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      cela aussi fonctionne:

      ligne = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row + 1
      
      0
    3. ccm81 Messages postés 11033 Statut Membre 2 434
       
      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
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
  3. Atn
     
    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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
    2. Atn
       
      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
    3. Atn
       
      Étant donné que dans l’etat Le tableau est vide, hormis la description de chaque colonne en ligne 1
      0
    4. Atn
       
      Commande bas me renvoie toujours au fin fond du tableau malgré cette méthode...
      0
  4. Atn
     
    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
    1. Atn
       
      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
    2. Atn
       
      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
    3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      en vba il faut éviter les cellules fusionnées!

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

      @+ Le Pivert
      0
    4. Atn
       
      Oui je sais mais sur un autre fichier sans cellule fusionnée je rencontre les memes difficultés ..
      0
    5. Atn > cs_Le Pivert Messages postés 8437 Statut Contributeur
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Atn
     
    Merci à tous pour votre temps et votre aide.
    Et à bientôt peut être pour de nouvelles aventures ;)
    0
  7. JCB40 Messages postés 3060 Date d'inscription   Statut Membre Dernière intervention   479
     
    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
    1. Atn
       
      Fait
      https://www.cjoint.com/c/IAtmdQugLEQ
      0