Copy paste values pour fichier entier xls
vinsvanden
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais dans xls (fonction) et/ou VBA(macro) savoir comment on peut faire un copy-paste values de tout un fichier?
S'il faut faire feuille par feuille dans la macro qu'on créé, comment peut on savoir par une requète combien il y a de feuilles et quels sont les noms des feuilles?
Merci pour votre aide.
vins
J'aimerais dans xls (fonction) et/ou VBA(macro) savoir comment on peut faire un copy-paste values de tout un fichier?
S'il faut faire feuille par feuille dans la macro qu'on créé, comment peut on savoir par une requète combien il y a de feuilles et quels sont les noms des feuilles?
Merci pour votre aide.
vins
1 réponse
-
Bonjour,
Essaie ce code (il y a les réponses à tes questions) :Private Sub Elimine_les_formules() ' Elimine les formules de calcul ' Dim rngPlage As Range 'Plage des cellules utilisées Dim adrCelluleInitiale As String 'Adresse de la cellule active initiale Dim nomFeuilleInitiale As String 'Nom de la feuille de calcul active Dim nomFeuille As String 'Nom de la feuille de calcul Dim n°Feuille As Integer 'N° d'index de la feuille Dim intModeDeCalcul As Integer 'Mode de calcul initial (manuel, auto, ) Dim flgMàjEcran As Boolean 'Etat initial de l'actualisation écran 'Enregistrer le contexte initial nomFeuilleInitiale = ActiveSheet.Name adrCelluleInitiale = ActiveCell.Address 'Arrêter l'actualisation automatique de l'écran et les calculs flgMàjEcran = Application.ScreenUpdating intModeDeCalcul = Application.Calculation Application.ScreenUpdating = False Application.Calculation = xlCalculationManual 'Explorer le classeur feuille à feuille n°Feuille = 1 Do 'Eliminer les formules de la zone utilisée nomFeuille = Sheets(n°Feuille).Name Sheets(nomFeuille).Select Application.StatusBar = "Suppression des formules dans " & nomFeuille ' - définir la zone utilisée Set rngPlage = Sheets(nomFeuille).UsedRange ' - remplacer les formules par leurs valeurs rngPlage.Copy rngPlage.PasteSpecial Paste:=xlPasteValues '- Feuille suivante n°Feuille = n°Feuille + 1 Loop While n°Feuille <= Sheets.Count 'Restaurer le contexte initial Sheets(nomFeuilleInitiale).Select ActiveSheet.Range(adrCelluleInitiale).Select Application.StatusBar = False Application.ScreenUpdating = flgMàjEcran Application.Calculation = intModeDeCalcul End Sub
Cordialement
Patrice-
Ou beaucoup plus simple :
Private Sub Elimine_formules() ' Elimine les formules de calcul ' Dim rngOrigine As Range 'Plage sélectionnée initiale 'Enregistrer le contexte initial Set rngOrigine = Selection 'Explorer le classeur feuille à feuille For Each wsh In Worksheets 'Remplacer les formules par leurs valeurs wsh.UsedRange.Copy wsh.UsedRange.PasteSpecial Paste:=xlPasteValues Next wsh 'Restituer le contexte initial rngOrigine.Parent.Activate rngOrigine.Select End Sub
-
-
-
-