Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro archiver vers autre classeur...que je n'arrive pas à modifier...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

J'aimerais avoir votre aide afin de me dire ce qu'il faut modifier sur cette macro...ça fonctionne presque..Lol

voir fichier...

Merci pour votre aide.
Christian
 

Pièces jointes

Re : Macro archiver vers autre classeur...que je n'arrive pas à modifier...

Bonjour à tout le forum,

J'aimerais avoir votre aide afin de me dire ce qu'il faut modifier sur cette macro...ça fonctionne presque..Lol

voir fichier...

Merci pour votre aide.
Christian
Bonjour Christian,

Je n'ai pas bien compris ce que tu voulais faire avec cette ligne de code, mais je pense que tes 7000 lignes viennent de là.
Code:
Set Plg = Wb1.Sheets("Bon de Commande").Range("u73:hr73" & Wb1.Sheets("Bon de Commande").Range("hr73").End(xlUp).Row)

Ta variable Plg prend la plage u73 à hr7372. (dernière cellule non vide en remontant de HR73 est la HR72)
 
Re : Macro archiver vers autre classeur...que je n'arrive pas à modifier...

Bonjour Christian,

Ne sachant pas bien ce que tu cherche, j'ai du mal à te dire ce qu'il faut faire 😉

Toutefois, je pense que ceci devrait te permettre de te débloquer.

Code:
Sub TransfertArchCommande()
Dim Wb1 As Workbook
Dim WB2 As Workbook
Dim Plg As Range, Derlgin As Long

If Range("ai73") = 0 Then
    MsgBox "Aucune denrée saisie....", , "Erreur"
    Exit Sub
End If
Application.ScreenUpdating = False
Set Wb1 = ThisWorkbook
Set WB2 = Workbooks.Open("C:\ARCHIVES COMMANDES\ArchivesBonsCommandes.xlsx") '.xlsx si excel 2010
Set Plg = Wb1.Sheets("Bon de Commande").Range("u73:hr73") ' ou Set Plg = Wb1.Sheets("Bon de Commande").Range("u73:hr" & Wb1.Sheets("Bon de Commande").Range("hr72").End(xlDown).Row)
    With WB2.Sheets("Archives")
      derlign = .Range("B65536").End(xlUp).Row
      .Range("GZ" & derlign + 1) = "Sauvegarde du " & Format(Date, "dd-mm-yyyy") & " à " & Time
        
      Dim i
      With .Range("B" & derlign + 1).Resize(Plg.Rows.Count, 206)
        .Value = Plg.Value
        For i = Plg.Rows.Count To 1 Step -1
            If Application.CountA(.Rows(i)) = 0 Then .Rows(i).Delete xlUp
        Next
      End With
      .Columns("B:GZ").AutoFit
    End With
WB2.Save
WB2.Close
Application.ScreenUpdating = True
End Sub

Le #N/A apparu à la place de la date était du au fait que tu écrasais la donnée par With .Range("B" & derlign + 1).Resize(Plg.Rows.Count, 206) (une colonne de trop)

Pour le point cité plus haut, tu as le choix entre 1: supprimer la partie faisant bugger et laisser "U73:HR73" ou bien 2: utiliser ma proposition en commentaire sur la ligne de code qui devrait te prendre l'ensemble des lignes de ton formulaire de départ (je présume que ton but est d'archiver par paquets, et non ligne par ligne)

A voir si cela te convient
 
Dernière édition:
Re : Macro archiver vers autre classeur...que je n'arrive pas à modifier...

Re, le forum, Tirou,

C'est parfait, Tirou, un grand merci pour ton aide. J'ai utilisé ta ligne de code.

Bien à toi, et à job 75,

Christian

P.S : 20 cm de neige à Saint_Quentin...
 
Dernière édition:
Re : Macro archiver vers autre classeur...que je n'arrive pas à modifier...

Bonjour Christian, Tirou,

Annulé car mêmes solutions que Tirou.

A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
33
Affichages
2 K
Réponses
3
Affichages
313
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…