formule Excel

TOUTOU03

XLDnaute Junior
Bonjour,

je me trouve en difficulté pour adapter une macro sur un fichier

mon classeur comporte 2 feuilles:

La première feuille comporte des informations (colonne A à F et ligne et ligne 3 à 27) et trois boutons (Enregister, Imprimer et Archiver)

le soucis est avec le troisième bouton (Archiver)

je veux qu'il exporte les informations contenues dans les lignes 3 à 27, de la colonne A à F, vers la deuxième feuille (Archives) si et seulement si la colonne A est renseignée.

de la façon ou j'ai crée ma macro, mon bouton exporte les lignes y compris les differents boutons, et remonte les lignes 28 et plus qui elles ne doivent pas bouger

je crois savoir d'ou vient l'erreur, mais je n'arrive pas à la corriger.

Quelqu'un peut-il me conseiller?

Avec tous mes remerciements
 

Pièces jointes

  • Remises de banque.xlsm
    58.5 KB · Affichages: 32
  • Remises de banque.xlsm
    58.5 KB · Affichages: 34
  • Remises de banque.xlsm
    58.5 KB · Affichages: 35

VDAVID

XLDnaute Impliqué
Re : formule Excel

Bonjour TOUTOU03,

Si j'ai bien compris,
Peut-être dans le code de ton bouton:

Code:
'Déclaration des variables
Dim maPlagedépart As Range, maPLagefin As Range
Dim tabl()
    
    'Récupération des données à couper/coller
    Set maPlagedépart = Sheets("Remises").Range("A3:F" & Range("A27").End(xlUp).Row)
    
    'Remplissage du tableau
    tabl = maPlagedépart.Value
    
    'Enlever l'Apostrophe de la ligne du dessous pour supprimer les lignes après archivage
    'maplagedépart.ClearContents
    
    'Définition de la plage d'arrivée
    Set maPLagefin = Sheets("Archives").Range("A" & Sheets("Archives").Range("A65536").End(xlUp).Row + 1 & ":" & "F" & Sheets("Archives").Range("A65536").End(xlUp).Row + UBound(tabl()))
        
    'Remplissage de la plage d'arrivée
    maPLagefin.Value = tabl

PS: Les deux lignes après 'Définition de la plage d'arrivée sont à regroupé sur une seule.

Bonne journée !
 

hbenalia

XLDnaute Occasionnel
Re : formule Excel

Bonjour à tous,

Une idée en remplaçant le code du bouton "Archiver" (code de CommandButton3) par le code suivant:

Code:
Private Sub CommandButton3_Click()

' Archiver

    Range("A3:F27").Select
    Selection.Copy
    
    Sheets("Archives").Select
    DerLig = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("Archives").Range("A" & DerLig).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Sheets("Archives").Range("A" & DerLig).Select
    
    Sheets("Remises").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A3").Select

    ActiveWorkbook.Save
End Sub

Cordialement
 
Dernière édition:

hbenalia

XLDnaute Occasionnel
Re : formule Excel

Bonjour,

Peut-être le code :
Code:
Private Sub CommandButton3_Click()
' Archiver
    Range("$A$3:$F" & Range("A27").End(xlUp).Row).Select
    Selection.Copy
    
    Sheets("Archives").Select
    DerLig = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("Archives").Range("A" & DerLig).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Sheets("Archives").Range("A" & DerLig).Select

    Sheets("Remises").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A3").Select

    ActiveWorkbook.Save

End Sub

Cordialement
 

TOUTOU03

XLDnaute Junior
Re : formule Excel

merci beaucoup,

j'ai inséré le premier code qui fonctionne à un détail prés.
le dernier ne fonctionne pas.

ce que je veux réellement, c'est exporter uniquement les lignes dont A est renseigné.

j'ais complété le code pour séparer les lignes dont A est renseigné de celle dont A ne l'ai pas.

mais je n'arrive pas à aller plus loin
 

Pièces jointes

  • Remises de banque.xlsm
    61.2 KB · Affichages: 37
  • Remises de banque.xlsm
    61.2 KB · Affichages: 37
  • Remises de banque.xlsm
    61.2 KB · Affichages: 39

hbenalia

XLDnaute Occasionnel
Re : formule Excel

Bonjour à tous,

Une petite amélioration du code "archiver" pour trier (par ordre décroissant) la plage A3:F27 selon la couleur des cellules de A3:A27 (la couleur "grise" des cellules renseignées est ajoutée par une MFC)... Les lignes de la plage A3:F27 dont les cellules de la colonne A sont renseignées (colorrées en gris) seront mises en bas de cette plage, selectionnées et recopiées dans la deuxième feuille, ensuite elles seront vidées...

J'espère venir à ton aide...

Cordialement
 

Pièces jointes

  • Remises de banque.xlsm
    60.4 KB · Affichages: 30
  • Remises de banque.xlsm
    60.4 KB · Affichages: 32
  • Remises de banque.xlsm
    60.4 KB · Affichages: 26

Discussions similaires

Réponses
12
Affichages
454

Statistiques des forums

Discussions
312 922
Messages
2 093 644
Membres
105 774
dernier inscrit
Tibenjah