Ne Conserver que les valeurs et supprimer les formules sur certaines feuilles

Broch002

XLDnaute Occasionnel
Bonjour,

Je reviens vers vous, j'ai un classeur qui comporte 60 feuilles, je souhaite annuler sur certaines d'entre elles, les formules dans les colonnes "A à J", et les conserver sur les autres colonnes.
Cette action devant concerner toutes les feuilles sauf 2, feuil1 et feuil6 pour l'exemple.
j'ai trouver cette macro, qui fonctionne très bien, mais qui passe au karcher toutes les formules de toutes les feuilles. Comment l'adapter à mon problème.

Sub Formules_Valeurs()
Application.ScreenUpdating = False
Dim Feuil_Val As Worksheet
For Each Feuil_Val In ActiveWorkbook.Worksheets
Feuil_Val.Select
Cells.Copy
Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Next Feuil_Val
ActiveWorkbook.Sheets(1).Select
End Sub



Merci de votre aide.:confused:

Broch002:
 
Dernière édition:

Broch002

XLDnaute Occasionnel
Re : Ne Conserver que les valeurs et supprimer les formules sur certaines feuilles

Re bonjour,

J'ai peut être trouver mais la macro suivante, me change la mise ne page et doit être lancer sur chaque feuille:

Sub Efface ()
Sheets("BOOK").Range("A1:J500") = Sheets("BOOK").Range("A1:J500").Value
End Sub

N'y a t-il pas une solution avec la macro du message précédent, qui me semble beaucoup plus simple.

Merci d'avance

Broch002
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Ne Conserver que les valeurs et supprimer les formules sur certaines feuilles

Bonjour Broch, bonjour le forum,

Peut-être comme ça :
Code:
Sub Formules_Valeurs()
Dim O As Object 'déclare la variable O (Onglets)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
For Each O In Sheets 'boucle sur tous les onglets O du classeur
    'condition : si le nom de l'onglet n'est ni "Feuil1", ni "Feuil6"
    If Not O.Name = "Feuil1" And Not O.Name = "Feuil6" Then
        O.Select 'sélectionne l'onglet O
        O.Range("A1:J" & Application.Rows.Count).Copy 'copy les colonnes A à J
        O.Range("A1").PasteSpecial (xlPasteValues) 'colle les valeurs
        O.Range("A1").Select 'sélectionne la cellule A1 de l'onglet O
        Application.CutCopyMode = False 'supprime de clignotement des cellules copiées
    End If 'fin de la condition
Next O 'prochain onglet de la boucle
Sheets(1).Select 'sélectionne le prenier onglet
Range("A1").Select 'sélectionne la cellule A1 du premier onglet
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub
 

Broch002

XLDnaute Occasionnel
Re : Ne Conserver que les valeurs et supprimer les formules sur certaines feuilles

Bonjour Broch, bonjour le forum,

Peut-être comme ça :
Code:
Sub Formules_Valeurs()
Dim O As Object 'déclare la variable O (Onglets)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
For Each O In Sheets 'boucle sur tous les onglets O du classeur
    'condition : si le nom de l'onglet n'est ni "Feuil1", ni "Feuil6"
    If Not O.Name = "Feuil1" And Not O.Name = "Feuil6" Then
        O.Select 'sélectionne l'onglet O
        O.Range("A1:J" & Application.Rows.Count).Copy 'copy les colonnes A à J
        O.Range("A1").PasteSpecial (xlPasteValues) 'colle les valeurs
        O.Range("A1").Select 'sélectionne la cellule A1 de l'onglet O
        Application.CutCopyMode = False 'supprime de clignotement des cellules copiées
    End If 'fin de la condition
Next O 'prochain onglet de la boucle
Sheets(1).Select 'sélectionne le prenier onglet
Range("A1").Select 'sélectionne la cellule A1 du premier onglet
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub

Bonjour,

Cela fonctionne bien, mais s'il y a 10 feuilles dont les formules ne doivent pas être remplacées, j'ai fais le test mais cela s’arrête à la feuil3, sur les suivantes les formules sont remplacées:
If Not O.Name = "Glem" And Not O.Name = "Feuil1" And Not O.Name = "Feuil2" And Not O.Name = "Feuil3" And Not O.Name = "Feuil4" And Not O.Name = "Feuil5" Then

D’où vient le problème.

Merci d'avance.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Ne Conserver que les valeurs et supprimer les formules sur certaines feuilles

Bonjour Broch, bonjour le forum,

Essaie comme ça mais sans fichier exemple difficile de savoir pourquoi ça plante...
Code:
Sub Formules_Valeurs()
Dim O As Object 'déclare la variable O (Onglets)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
For Each O In Sheets 'boucle sur tous les onglets O du classeur
    Select Case O.Name 'agit en fonction du nom de l'onglet
        Case "Glem", "Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5" 'ici il faut mettre tous les noms des onglet où le formules sont gardées (séparés par une virgule)
            'rien ne se passe
        Case Else 'autre cas
            O.Select 'sélectionne l'onglet O
            O.Range("A1:J" & Application.Rows.Count).Copy 'copy les colonnes A à J
            O.Range("A1").PasteSpecial (xlPasteValues) 'colle les valeurs
            O.Range("A1").Select 'sélectionne la cellule A1 de l'onglet O
            Application.CutCopyMode = False 'supprime de clignotement des cellules copiées
    End Select 'fin de l'action en fonction de...
Next O 'prochain onglet de la boucle
Sheets(1).Select 'sélectionne le prenier onglet
Range("A1").Select 'sélectionne la cellule A1 du premier onglet
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Ne Conserver que les valeurs et supprimer les formules sur certaines feuilles

Bonsoir à tous

Un biais (utilisable pour deux feuilles, pour dix c'est plus fastidieux mais cela marche aussi)
Code:
Sub a()
Dim ws As Worksheet
Sheets(1).Visible = 0: Sheets(2).Visible = 0
For Each ws In Worksheets
If ws.Visible Then
ws.Range("A1").Value = ws.Range("A1").Value
End If
Next
Sheets(1).Visible = -1: Sheets(2).Visible = -1
End Sub
test ok
PS: adapter la plage à ton exemple A1:J500
NB: j'ai repris la syntaxe du message #2
 

Broch002

XLDnaute Occasionnel
Re : Ne Conserver que les valeurs et supprimer les formules sur certaines feuilles

Bonjour Broch, bonjour le forum,

Essaie comme ça mais sans fichier exemple difficile de savoir pourquoi ça plante...
Code:
Sub Formules_Valeurs()
Dim O As Object 'déclare la variable O (Onglets)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
For Each O In Sheets 'boucle sur tous les onglets O du classeur
    Select Case O.Name 'agit en fonction du nom de l'onglet
        Case "Glem", "Feuil1", "Feuil2", "Feuil3", "Feuil4", "Feuil5" 'ici il faut mettre tous les noms des onglet où le formules sont gardées (séparés par une virgule)
            'rien ne se passe
        Case Else 'autre cas
            O.Select 'sélectionne l'onglet O
            O.Range("A1:J" & Application.Rows.Count).Copy 'copy les colonnes A à J
            O.Range("A1").PasteSpecial (xlPasteValues) 'colle les valeurs
            O.Range("A1").Select 'sélectionne la cellule A1 de l'onglet O
            Application.CutCopyMode = False 'supprime de clignotement des cellules copiées
    End Select 'fin de l'action en fonction de...
Next O 'prochain onglet de la boucle
Sheets(1).Select 'sélectionne le prenier onglet
Range("A1").Select 'sélectionne la cellule A1 du premier onglet
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub

Bonjour,

Je reprend ce Matin et cette formule fonctionne parfaitement.

Merci de votre aide.

Broch002
 

Staple1600

XLDnaute Barbatruc
Re : Ne Conserver que les valeurs et supprimer les formules sur certaines feuilles

Bonjour à tous


Broch002
Merci d'avoir testé ma proposition (voir mon précédent message)
Cela fait toujours plaisir .......................................d’être transparent ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin