Microsoft 365 Copier et coller dans une nouvelle feuille que les valeurs et non les formules

Bob 31

XLDnaute Nouveau
Bonjour à tous

J'ai besoin de l'aide
J'ai une macro ci dessous, mais je n'arrive pas à programmer dans ma formule de coller que les valeurs des données à coller
Avec cette macro ce colle les formules alors que je souhaite coller les valeurs dans la feuille créée.

En vous remerçiant par avance

Cordialement


Private Sub btnExtraction_click()

'Déclaration des variables
Dim MaRegion As Range
Dim ListeRegion As Range
Dim NbLignes As Long
Dim LigneActive As Long

'Affectation des variables
Set ListeRegion = Feuil1.Range("A2", Feuil1.Range("A1").End(xlDown))
NbLignes = ListeRegion.Rows.Count
LigneActive = 0

'On insère une nouvelle feuille
Sheets.Add
Feuil1.Range("A1").EntireRow.Copy ActiveCell
Range("A2").Select


'On boucle chaque Region se trouvant dans la liste
For Each MaRegion In ListeRegion

'On se décale d'une ligne vers le bas
LigneActive = LigneActive + 1

'On recherche le MOIS qui a été saisi dans la liste déroulante
If MaRegion.Offset(0, 0).Value = Me.ComboRegion.Value Then

'Si mon MOIS est trouvé on récupère l'enregistrement du mois
MaRegion.EntireRow.Copy ActiveCell
ActiveCell.Offset(1, 0).Select


End If
Next MaRegion

'Mise en forme des extractions
'On va ajuster les colonnes des tableaux
Range("A1").Select
ActiveCell.CurrentRegion.EntireColumn.AutoFit



End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Si, si on peut faire autrement ;)
Voici comment ;)
VB:
Sub Recopier()
Dim A_Copier
A_Copier = Range(Feuil1.[A2], Feuil1.Cells(Rows.Count, 1).End(3)).Value
Sheets.Add
Cells(1).Resize(UBound(A_Copier, 1), UBound(A_Copier, 2)) = A_Copier
End Sub
J'ai recopie les valeurs (et pas les formules) de la feuille Feuil1 sur une nouvelle feuille.
Et ce sans passer par une boucle, et sans faire Copier/Coller -> Valeurs seules
;)
 

Staple1600

XLDnaute Barbatruc
Re

Fais ce test sur un classeur vierge (qui contient une seule feuille nommée Feuil1)
1) Lances la macro Préparer_Test
Tu vois alors des formules dans la colonne A de la feuille Feuil1
2) Lances alors la macro Recopier
Cela créé une nouvelle feuille, où tu verras que tu as bien en colonne A que les valeurs, sans les formules et même sans les formats
VB:
Sub Préparer_Test()
Feuil1.[A1] = "Test"
Feuil1.[A2:A33] = "=ROW()-1&""_""&ADDRESS(ROW(),COLUMN(),4)"
Feuil1.[A1].CurrentRegion.Borders.Weight = 2
Feuil1.[A1].CurrentRegion.Interior.ColorIndex = 6
End Sub

Sub Recopier()
Dim A_Copier
A_Copier = Range(Feuil1.[A2], Feuil1.Cells(Rows.Count, 1).End(3)).Value
Sheets.Add
Cells(1).Resize(UBound(A_Copier, 1), UBound(A_Copier, 2)) = A_Copier
End Sub
NB: Ceci n'est que du code VBA pour faire un test (pour vérifier que le code proposé fonctionne)
 

Bob 31

XLDnaute Nouveau
Cela ne peut fonctionner avec mon tableau
En effet j'ai un tableau avec 30 colonnes et 900 lignes et je souhaite créer des nouvelles feuilles (une par mois) Par exemple : quand sur une cellule de la ligne est indiqué un mois alors je recopie la ligne sur une nouvelle feuille pour le mois concerne (si janvier alors je copie la ligne complète sur une feuille nommée janvier)
 

Bob 31

XLDnaute Nouveau
Oui je souhaite garder la structure de mon fichier (j'ai remplacé le mot MOIS par Region dans ma formule)
Je ne connais pas TCD je suis débutant et je trouvais sympa la possibilité d'extraire avec le bouton vers une nouvelle feuille une par mois
 

Staple1600

XLDnaute Barbatruc
Re

=BOUBEE
Je t'ai précédemment proposé un code VBA qui ne te convient pas.
(alors qu'il fait ce que tu demandes : pas de formules , les valeurs)
Comme j'ai pris du temps, pour créer cet exemple, je le poste
exempleTCD.jpg
 

Discussions similaires

Haut Bas