Enregister un classeur en changeant toutes formules en valeur

  • Initiateur de la discussion Initiateur de la discussion Dessimoz
  • Date de début Date de début

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 !

D

Dessimoz

Guest
Bonjour, (et joyeuses fêtes en passant)

Je planche sur un problème et j'ai trouvé la solution, malheureusement je ne trouve pas comment organiser le tout :

L'objectif : en enregistrant un classeur Excel, je veux que toutes les cellules, de tous les onglets deviennent des valeurs (exit les formules et les liens).

manuellement, je vois ce que ça donne, on prend chaque onglet un après l'autre, on fait ctrl-A, copier - collage spécial - valeur.

Merci à celui ou ceux qui pourront m'aiguiller.

Salut.
Dessimoz
 
Re : Enregister un classeur en changeant toutes formules en valeur

Bonjour Dessimoz,

As-tu essayé ta manip. après avoir mis en route l'enregistreur de macro... ?

Il devrait te donner de bonnes indiquations.

Pratique et surtout un bon début vers le VBA, même si le code n'est pas toujours "très propre" il reste performant.

Bon Noël et bonne découverte.

Jean-Pierre
 
Re : Enregister un classeur en changeant toutes formules en valeur

Salut Jean-Pierre,

Oui, j'ai essayé. En fait, ce qui me manque, c'est que le nombre d'onglet varie d'un classeur à l'autre, donc il faudrait faire la macro qui :

compte le nombre d'onglet du classeur, puis :
passe au classeur 1, ctrl-a, copier-collage spécial
passe au classeur 2, ..........
passe au classeur 3,. ..........

Moi, c'est au niveau de la définition du nombre de d'onglet puis de la répétition de l'opéaration qui me fait défaut.
 
Re : Enregister un classeur en changeant toutes formules en valeur

Voilà, j'ai fais une petite macro... (bon c'est pas le bon code très propre mais bon)

Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 24.12.2009 par Dessimoz
'
On Error Resume Next

Sheets(1).Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select

Sheets(2).Select
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select

Sheets(3).Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select

Sheets(4).Select
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select

Sheets(5).Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select

Sheets(6).Select
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select

Sheets(1).Activate
End Sub
 
Re : Enregister un classeur en changeant toutes formules en valeur

Bonjour,

Voici qui devrait le faire:

Code:
Sub CopierCollerValeurTouteFeuilles()
    Dim sh As Worksheet
    For Each sh In Worksheets
        sh.UsedRange.Copy
        sh.UsedRange(1).PasteSpecial xlValues
    Next
    Application.CutCopyMode = False
End Sub

A+
 
Re : Enregister un classeur en changeant toutes formules en valeur

et voilà le code propre

Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 24.12.2009 par Dessimoz

For Each Sheet In ActiveWorkbook.Sheets
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select
Next Sheet

End Sub
 
Re : Enregister un classeur en changeant toutes formules en valeur

Petit problème.

avec ce code :
Sub Macro3()
' Macro3 Macro
' Macro enregistrée le 24.12.2009 par Dessimoz
'Dim sheet As Worksheets

For Each sheet In ActiveWorkbook.Worksheets
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next sheet
End Sub

ça ne fonctionne plus (pas) ! ça marche uniquement sur la page active !
 
Re : Enregister un classeur en changeant toutes formules en valeur

Re, Bonsoir Hasco,

Si ti veux des problèmes, continue à fusionner les cellules...

Est-ce bien raisonnable ? Il y a d'autres solutions pour la même apparence.

Bon noël.

Jean-Pierre
 
Re : Enregister un classeur en changeant toutes formules en valeur

Re,

Avec Excel <=2003, tu peux fusionner des cellules sans passer par la fusion en dur.

Selection de tes cellules et Menu Format/Cellule, onglet Alignement et Centré sur plusieurs colonnes.

Valable uniquement en ligne mais pas en colonnes.

Plus propre et plus accessible à une macro.

Jean-Pierre
 
Re : Enregister un classeur en changeant toutes formules en valeur

Bonsoir à tous


Deux autres possibilités



Code:
     Sub suppress_formulesII()
Dim ws As Worksheet
'toutes les cellules ici sont pris en compte
For Each ws In Worksheets
With ws.UsedRange
    .Value = .Value
End With
Next
End Sub
Code:
     Sub suppress_formules()
Dim ws As Worksheet
'remplacement des formules par les valeurs
'dans les seules cellules contenant des formules
For Each ws In Worksheets
With ws.UsedRange.Cells.SpecialCells(xlCellTypeFormulas, 23)
    .Value = .Value
End With
Next
End Sub

Issues d'une de mes réponses dans ce fil
https://www.excel-downloads.com/threads/copie-valeur-de-tous-les-onglets-vba.104510/
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
Réponses
4
Affichages
1 K
D
S
Réponses
2
Affichages
1 K
S
F
Réponses
10
Affichages
1 K
F
T
Réponses
3
Affichages
1 K
T
L
Réponses
13
Affichages
2 K
C
Réponses
2
Affichages
2 K
chorifi
C
P
Réponses
1
Affichages
905
P
Retour