Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Histoire de boucle

BAT

XLDnaute Occasionnel
Bonjour,

Je n'arrive pas à construire 2 macros qui va me permettre de réaliser l'action suivante :
Macro 1 : Pour toutes les feuilles du classeur, réalisé le code suivant (copi toute les cell et les colles avec collage spé valeur)


Macro 2 : Pour toutes les feuilles du classeur à l'expetion de la feuille "MENU", réalisé le code suivant (copi toute les cell et les colles avec collage spé valeur)

C'est facile lorsque l'on manipule le VBA mais g toujours des problèmes à cela. J'espère que vous pourrez m'aider sur ce point.

Merci à tous

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

vbacrumble

XLDnaute Accro
Re : Histoire de boucle

Bonjour


Essaie ceci:


Code:
Sub valeurseule()
For i = 1 To Worksheets.Count
If Worksheets(i).Name <> "MENU" Then
Worksheets(i).UsedRange.Cells.Value = _
Worksheets(i).UsedRange.Cells.Value
End If
Next
End Sub

A+
 

BAT

XLDnaute Occasionnel
Re : Histoire de boucle

Bonjour VBAcrumble et merci de ta réponse.

La macro ne fonctionne pas car j'ai des TCD sur les pages et donc un message d'erreur apparît :
"errreur d'exécution 1004:
Impossible de déplacer, créer ou de modifier une partie d'un rapport de TCD n'y d'y insérer des cellules...."

En espérant qu'une parade existe pour cette erreur. Merci par avance
 

vbacrumble

XLDnaute Accro
Re : Histoire de boucle

Re

EDITION: et avec ce code il se passe quoi?
Code:
Sub valeurseuleTCD()
For i = 1 To Worksheets.Count
If Worksheets(i).Name <> "MENU" And Worksheets(i).PivotTables.Count = 0 Then
Worksheets(i).UsedRange.Cells.Value = _
Worksheets(i).UsedRange.Cells.Value
End If
Next
End Sub


Ton premier message ne mentionnait pas de TCD

Donc ce code fonctionne avec un classeur contenant des feuilles contenant des formules dont on ne veut que les valeurs seules.


A+
 
Dernière édition:

BAT

XLDnaute Occasionnel
Re : Histoire de boucle

Re
Il ne se passe rien. En fait dans chacune de mes feuilles j'ai des TCD et/ou des formules.

L'objectif principal de de cette macro est de remplacer le contenu des TCD par leur valeur. Aujourdhu'i j'utilise le code suivant sur chaque feuille pour les supprimer. L'objectif de la nouvelle macro était donc de coupler ce code avec une boucle ou un code qui réalise l'opération sur chacune des feuilles, m'évitant ainsi d'avoir à répéter l'action autant de fois qu'il y a de feuille.

Désolé si les explication n'étaient pas clairs.

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

vbacrumble

XLDnaute Accro
Re : Histoire de boucle

Re

Et comme ceci?


Code:
Sub valeurseuleTCDa()
For i = 1 To Worksheets.Count
If Worksheets(i).Name <> "MENU" Then
    With Worksheets(i).UsedRange
        .Copy
        .PasteSpecial xlPasteValues
        Application.CutCopyMode = False
    End With
End If
Next
End Sub

A+
 

pierrejean

XLDnaute Barbatruc
Re : Histoire de boucle

bonjour a tous

A tester:

Code:
For each sh in sheets
sh.Cells.Copy
sh.Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
next sh
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…