Macro d'export des valeurs contenues dans des lignes non masquées

Bonjour,

En recherchant sur ce forum d'entraide, je suis parvenu à trouver différentes méthodes d'export des données vers une autre feuille ou un autre classeur, cependant mon souci est un peu plus complexe, dans la mesure où je souhaite n'exporter que les lignes "visibles" de la feuille active, et uniquement les valeurs qu'elles contiennent (sans les formules donc).

Le but étant d'exporter les lignes de la feuille active vers un nouveau document Excel au format .xls (et non xlsx) et d'enregistrer ce document à un emplacement défini ou choisi par l'utilisateur (peu m'importe).

Merci pour l'aide que vous pourriez m'apporter sur ces points.

Bonjour,

Il te suffit d'intégrer à ta macro :

Cells.SpecialCells(xlCellTypeVisible)

Bonjour, j'avais trouvé un exemple d'utilisation de ce paramètre, mais c'était sous la forme :

Feuille.SpecialCells(xlCellTypeVisible) (où feuille était défini plus haut) mais j'avais une erreur de traitement.

Je vais essayer avec ce paramètre, merci.

Et si je souhaite définir un range pour limiter la selection à une plage de cellule, est-ce que je peux remplacer cells par range ?

Re,

Oui ... tu peux remplacer Cells par la définition de ta Range ...

D'ailleurs c'est la bonne façon d'utiliser cette instruction ...

Re bonjour,

Je suis parti d'une macro que j'ai tenté d'adapter à mon besoin :

'Macro d'export des lignes non masquées vers un nouv
Sub sbrughera()
Dim feuille, nom, Export
Set feuille = ActiveSheet
nom = feuille.Range("J2") & ".xls"

Application.Workbooks.Add
Export = ActiveWorkbook.Name
feuille.Cells.SpecialCells(xlCellTypeVisible).Copy

With Workbooks(Export).ActiveSheet.Cells.SpecialCells(xlCellTypeVisible)
.PasteSpecial Paste:=xlPasteAll
.PasteSpecial Paste:=xlPasteValues
End With
Workbooks(Export).SaveAs nom

Application.CutCopyMode = False

End Sub

Lorsque je laisse la ligne suivante :

.PasteSpecial Paste:=xlPasteAll

La macro me renvoie l'erreur : "Erreur d'execution '1004' Erreur définie par l'application ou par l'objet"

De plus, cela m'exporte bien mon tableau, mais cela exporte les formules dans les cellules, et non les valeurs.

J'ai donc tenté de désactiver l'instruction ".PasteSpecial Paste:=xlPasteAll" je n'ai alors plus d'erreur particulière, mais toute la mise en forme des cellules est perdue et le fichier devient inexploitable.

Une âme charitable pour m'aider à nettoyer cette macro ?

Merci

Re,

Toujours compliqué de modifier une macro ' hors-sol ' ... sans fichier pour faire un test ..

Tu peux tester le code suivant

Option Explicit

Sub sbrughera2()
Dim nom As String
Dim Export As String

Export = ActiveWorkbook.Name
nom = ActiveSheet.Range("J2") & ".xls"
Application.Workbooks.Add

  With Workbooks(Export).ActiveSheet.Cells.SpecialCells(xlCellTypeVisible)
    .Copy
    .PasteSpecial Paste:=xlPasteValues
    .PasteSpecial Paste:=xlPasteFormats
  End With
Application.CutCopyMode = False
Application.DisplayAlerts = False
Workbooks(Export).SaveAs nom
Application.DisplayAlerts = True
End Sub

En espérant que cela t'aide ...

Bonjour,

Merci beaucoup pour ton aide, j'ai testé et ç à l'air d'avoir fonctionné au premier lancement.

Cependant, en voulant vérifier une seconde fois, le traitement échoue désormais avec le message d'erreur identique au précédent.

Je peux te faire suivre le fichier Excel si tu le souhaites en MP

Bonjour,

A titre exceptionnel, tu peux me poster ton fichier en MP ...

Et, dès que j'ai un petit moment, je regarderai tes macros ...

Bonjour,

A titre exceptionnel, tu peux me poster ton fichier en MP ...

Et, dès que j'ai un petit moment, je regarderai tes macros ...

Tu dois l'avoir reçu.

Merci pour ton aide

Si cela peut aider, l'execution pas à pas de la Macro données plus haut s'arrête lors du passage à l'instruction .PasteSpecial :

.PasteSpecial Paste:=xlPasteValues

Re,

Malheureusement le site que tu as choisi pour joindre ton fichier ... ne fonctionne pas ...

Je te recommande d'utiliser https://cjoint.com/

Hello,

Désolé que ça ne fonctionne pas chez toi, il fonctionne très bien depuis mon poste.

Par simplicité, je te joint à nouveau le fichier par un autre site dl.free.fr (je n'ai pas particulièrement confiance dans les conditions d'utilisation de certains site tiers) en MP

Bonjour à tous,

Mon souci est résolu.

Voici la macro finale me permettant d'obtenir le résultat escompté :

Sub toto2()
Dim nom As String
Dim Export As String
Dim newbook As Workbook
'Définition du nom de fichier :
nom = "test.xls"
Export = ActiveWorkbook.Name
'Copie des cellules visibles
Workbooks(Export).ActiveSheet.Cells.SpecialCells(xlCellTypeVisible).Copy
'Création du nouveau classeur et activation de la feuille 1 du nouveau classeur
Set newbook = Workbooks.Add
Worksheets("Feuil1").Activate
'Collage des valeurs
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
'Collage du format des cellules
Selection.PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False
Application.DisplayAlerts = False
'Sauvegarde du fichier en format Excel 2000-2003
newbook.SaveAs nom, 56
Application.DisplayAlerts = True

Merci à tous pour l'aide que vous avez pu m'apporter.

End Sub

Merci d'avoir partagé ta solution...pour tous le futurs lecteurs du Forum ...

Rechercher des sujets similaires à "macro export valeurs contenues lignes masquees"