Macro copier valeurs sans formules
Résolu
Auré
-
Auré -
Auré -
Bonjour,
Voici mon problème. J'ai un tableau de données (A1:E10).
J'ai un autre tableau (F1:J10) avec des fonctions du type SI qui renvoit au 1er tableau.
Je souhaiterais créer une macro qui s'exécute automatiquement pour copier uniquement les valeurs (et non les formules) du tableau (F1:J10), afin d'appliquer un tri croissant sur ces valeurs (noms par ordre alphabétique)
En fouillant sur le forum je suis tombé sur cette ligne pour le tri :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim retour
retour = Run("trier", 1, "G", "D")
End Sub
J'ai également trouvé cette ligne pour la copie :
Range("A1:A30").Copy Range("G1")
Mais je ne sais pas comment articuler ces 2 lignes de codes ni comment faire pour que la macro ne copie que les valeurs.
J'espère que mon exposé n'est pas trop confus...
Voici mon problème. J'ai un tableau de données (A1:E10).
J'ai un autre tableau (F1:J10) avec des fonctions du type SI qui renvoit au 1er tableau.
Je souhaiterais créer une macro qui s'exécute automatiquement pour copier uniquement les valeurs (et non les formules) du tableau (F1:J10), afin d'appliquer un tri croissant sur ces valeurs (noms par ordre alphabétique)
En fouillant sur le forum je suis tombé sur cette ligne pour le tri :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim retour
retour = Run("trier", 1, "G", "D")
End Sub
J'ai également trouvé cette ligne pour la copie :
Range("A1:A30").Copy Range("G1")
Mais je ne sais pas comment articuler ces 2 lignes de codes ni comment faire pour que la macro ne copie que les valeurs.
J'espère que mon exposé n'est pas trop confus...
A voir également:
- Copier le contenu d'une cellule excel sans la formule
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
3 réponses
Bonjour,
Essaie avec l'enregistreur de macro, ça va te donner les lignes de code directement. Sinon ça pourrait ressembler à ça (resultat obtenu avec l'enregistreur de macro) :
Sub Macro3()
Range("A8:B43").Select (Ici tu mets la plage que tu as à copier)
Selection.Copy
Sheets("Feuil3").Select (Ici tu mets la feuille où tu veux copier tes valeurs. Si tu veux les copier à partir d'une cellule précise, rajoute : Range("C5").Select )
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
(cela effectue un collage spécial : uniquement les valeurs)
ActiveWorkbook.Worksheets("Feuil3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil3").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil3").Sort
.SetRange Range("A2:B36")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
(ça c'est le code que me donne vba quand je clique sur "trier de AàZ")
End Sub
Voilà!
En ésparant t'avoir aidé au moins un peu!
Beeloobop
Essaie avec l'enregistreur de macro, ça va te donner les lignes de code directement. Sinon ça pourrait ressembler à ça (resultat obtenu avec l'enregistreur de macro) :
Sub Macro3()
Range("A8:B43").Select (Ici tu mets la plage que tu as à copier)
Selection.Copy
Sheets("Feuil3").Select (Ici tu mets la feuille où tu veux copier tes valeurs. Si tu veux les copier à partir d'une cellule précise, rajoute : Range("C5").Select )
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
(cela effectue un collage spécial : uniquement les valeurs)
ActiveWorkbook.Worksheets("Feuil3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil3").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil3").Sort
.SetRange Range("A2:B36")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
(ça c'est le code que me donne vba quand je clique sur "trier de AàZ")
End Sub
Voilà!
En ésparant t'avoir aidé au moins un peu!
Beeloobop