Autres Macro archivage qui ne fonctionne pas comme souhaitée...

Christian0258

XLDnaute Accro
Bonjour à tout le forum,
J'ai un souci avec une macro archivage.
Lorsque j'archive les valeurs de B5 à L8 donc sur 4 lignes , si certaines lignes sont vides, l'archivage se fait avec la zone complète, blancs y compris, ce qui laisse des lignes blanches dans la feuille archives…???

voir fichier

Merci pour le temps que vous voudrez bien vouloir m'accorder.

Bien à vous,
Christian
 

Pièces jointes

  • Archivage.xlsm
    42.8 KB · Affichages: 11

Dudu2

XLDnaute Barbatruc
Bonjour,
C'est normal tu as des formules dans ces cellules "vides" en colonne B.
Tu ferais mieux de calculer la hauteur de ton Range sur la colonne I qui conditionne la valorisation de la colonne B.

Autre petite remarque, ce serait préférable de bien qualifier les Ranges plutôt que des faire des Select sur le feuille.
VB:
Sub Archivage()
    Sheets("Saisies").Range("B5:L" & Sheets("Saisies").Range("I65536").End(xlUp).Row).Copy
    Sheets("Archives").Range("B" & Sheets("Archives").Range("B65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Christian0258, Dudu2,
VB:
Sub Archivage()
With Sheets("Saisies").Range("B5:L" & Sheets("Saisies").Range("B65536").End(xlUp).Row)
    Sheets("Archives").Range("B65536").End(xlUp)(2).Resize(.Rows.Count, .Columns.Count) = .Value
End With
End Sub
A+
 

Pièces jointes

  • Archivage(1).xlsm
    44.1 KB · Affichages: 8

Dudu2

XLDnaute Barbatruc
VB:
Sub Archivage()
    Dim Dernièreligne As Long
    
    Dernièreligne = Sheets("Saisies").Range("B:B").Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    'MsgBox Dernièreligne
    Sheets("Saisies").Range("B5:L" & Dernièreligne).Copy
    Sheets("Archives").Range("B" & Sheets("Archives").Range("B65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub
 

Dudu2

XLDnaute Barbatruc
Par contre je ne comprends pas pourquoi le code initial de Christian0258 ne fonctionne pas.
C'est à dire pourquoi dans un 2ème archivage, la recherche de la dernière ligne en colonne B de la feuille cible trouve un ligne qui ne contient rien (ni formule ni data) puisque PasteSpecial Paste:=xlPasteValues a été utilisé.
 

Dudu2

XLDnaute Barbatruc
C'est pourtant facile à comprendre.
T'es marrant. C'est facile à comprendre quand on connait l'explication ! Merci pour.

Et quand on connait cette subtilité toute Excel du vide et du pas vide mais avec chaine vide dedans.

Ce qui est surprenant c'est que l'affectation avec .Value n'ait pas le même comportement que la copie
PasteSpecial Paste:=xlPasteValues. Je suppose qu'il faut juste le savoir.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa