Microsoft 365 Transformer en valeur une sélection sur plage triée

Gen Rose

XLDnaute Impliqué
Bonjour tous 🥰

C'est concernant un tri résultant en centaines de lignes que j'aimerais modifier en valeur (afin de conserver les résultats sans les formules dans les cases).
Comme ça ne fonctionne pas, je me demandais s'il y a avait une autre méthode possible?

Un gros merci à l'avance!
 

vgendron

XLDnaute Barbatruc
effectivement le copier special ne fonctionne pas sur une plage non continue.
la question. pourquoi as tu besoin de ne plus avoir que des valeurs. alors que tu demandes ensuite (en option) de remettre les formules??
Que fais tu des données filtrées (et pas triée) ?
 

vgendron

XLDnaute Barbatruc
avec cette macro à lancer à partir de la feuille qui contient le tableau de données
VB:
Sub Macro1()
    With ActiveSheet.ListObjects("Tableau13")
        .Range.AutoFilter Field:=2, Criteria1:="BAR"
        .DataBodyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil1").Range("A2")
    End With
End Sub
 

Gen Rose

XLDnaute Impliqué
effectivement le copier special ne fonctionne pas sur une plage non continue.
la question. pourquoi as tu besoin de ne plus avoir que des valeurs. alors que tu demandes ensuite (en option) de remettre les formules??
Que fais tu des données filtrées (et pas triée) ?
Je dois reporter certaines données des colonnes titrées en vert en lieux des bleues mais je dois avant conserver certaines données tel quel dans les bleues (selon un tri spécifique).
Le problème, c'est qu'il y a des calculs dans les bleues basées sur des colonnes appelées à disparaitre donc bonjour les N/A. J'ai donc besoin de consolider certaines plages triées en bleu sans ces liens vers des plages appelées à disparaître.
Ensuite, je dois vider la section verte pour l'année prochaine (qui sera à remplir).
C'est franchement ridicule comme manip, mais c'est la demande.
 

Gen Rose

XLDnaute Impliqué
avec cette macro à lancer à partir de la feuille qui contient le tableau de données
VB:
Sub Macro1()
    With ActiveSheet.ListObjects("Tableau13")
        .Range.AutoFilter Field:=2, Criteria1:="BAR"
        .DataBodyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil1").Range("A2")
    End With
End Sub
J'essaie cela et te reviens avec des nouvelles bientôt, un gros merci!
 

Gen Rose

XLDnaute Impliqué
avec cette macro à lancer à partir de la feuille qui contient le tableau de données
VB:
Sub Macro1()
    With ActiveSheet.ListObjects("Tableau13")
        .Range.AutoFilter Field:=2, Criteria1:="BAR"
        .DataBodyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil1").Range("A2")
    End With
End Sub
Bonjour, j'ai tenté la macro mais ça ne fonctionne pas.
Le range A2 signifie t-il que toute la ligne "BAR" est recopiée en valeur?
 

Pièces jointes

  • TransformerEnValeur_PlageTriee.xlsm
    495.3 KB · Affichages: 2

vgendron

XLDnaute Barbatruc
pour que ca fonctionne;. il faut que la feuille cible (Feuil1) existe dans ton classeur
puisque la macro filtre et exporte en valeur le résultat du filtre sur la feuille 1
la cellue A2, c'est pour dire à partir d'où on colle le résultat

après;. si il faut absolument obtenir la copie en valeur en lieu et place de la feuille filtrée, il faut ajouter une étape de "TRI" comme suggéré JHA (Hello) ==> ce qui permet d'avoir un résultat filtré sur des lignes continues. et donc un copier collage spécial possible
mais du coup. je ne comprend pas du tout l'intérêt surtout si tu remets les formules juste après==> le copier collage spécial sera totalement inutile..
 

Discussions similaires

Statistiques des forums

Discussions
315 091
Messages
2 116 110
Membres
112 662
dernier inscrit
lou75