XL 2013 Fonction de permutation en VBA par un ordre spécifique

simoben

XLDnaute Nouveau
salut tout le monde,J'ai besoin a une macro permet de faire une permutation entre deux variables avec les contraintes suivantes :

-Un tableau contient 5 cellules comme Cela

A

B

C

D

E

Si je permute A et D; D prendre la place de A et A arrive aprés D directement. alors Le tableau devient Comme Ca

D

A

B

C

E

Veillez m'aider et merci beaucoup .
 

Pièces jointes

  • Permutation selon un ordre.xlsx
    9.5 KB · Affichages: 40

Dranreb

XLDnaute Barbatruc
Re : Fonction de permutation en VBA par un ordre spécifique

Bonjour.
VB:
Option Explicit

Sub test()
Permut [A5:C5], [A2:C2]
End Sub

Sub Permut(ByVal Fin As Range, ByVal Déb As Range)
Fin.Cut
Déb.Insert xlShiftDown
Application.CutCopyMode = False
End Sub
 

simoben

XLDnaute Nouveau
Re : Fonction de permutation en VBA par un ordre spécifique

Merci infiniment mon prof Dranreb ,désolé pour le retard j'avais des problèmes de connexion; la fonction est super; Mais je pense que j'ai pas bien expliqué le fonctionnement ; la permutation n'est pas seulement concerné D et A, je cherche une fonction qui me permet de permuter deux cellule quelconque mais elle respecte l’ordre que j'ai déjà signalé .Si possible Veuillez m'aider et désolé pour le dérangement merci.
 

Dranreb

XLDnaute Barbatruc
Re : Fonction de permutation en VBA par un ordre spécifique

Voulez vous dire que vous ne voulez pas qu'elle permute les cellules elles même, mais qu'elle renvoie les valeurs permutées dans une autre plage ? Une fonction à utiliser comme formule matricielle en somme ?
Sinon la Sub Permut permet de permuter n'importe quelles plages spécifiées en paramètres. La sub Test n'est qu'un exemple d'utilisation pour A5:C5 et A2:C2
 

simoben

XLDnaute Nouveau
Re : Fonction de permutation en VBA par un ordre spécifique

Salut Mr,
Oui c'est ça, je pense que tu m'as compris Maintenant . pour plus d'explication ce que je cherche c'est une fonction me permet de permuter les deux cellules sélectionnés n'est pas spécifiquement [A5:C5], [A2:C2] avec l'ordre que j'ai déjà signalé merci encore merci .
 

Dranreb

XLDnaute Barbatruc
Re : Fonction de permutation en VBA par un ordre spécifique

Non je n'ai pas compris. Une fonction dans une formule ne peut pas s'appuyer sur la sélection, mais sur les paramètres qu'on lui précise. Je crois que vous confondez fonction et procédure.
Essayez Permut Selection.Areas(1), Selection Areas(2)
Ça devrait marcher sur une sélection multiple.
 

simoben

XLDnaute Nouveau
Re : Fonction de permutation en VBA par un ordre spécifique

Désolé j'ai pas compris je suis un débutant en VBA. voila ce que je veux
je veux choisir deux cellules quelconque et les permuter aprés la permutation l'un arrive aprés l'autre directement .
comme Sub test avec l'option de choisir les cellules permutées .
 

eriiic

XLDnaute Barbatruc
Re : Fonction de permutation en VBA par un ordre spécifique

Bonjour,

Qq chose comme ça ?
Un double-clic en A marque un outil, cliquer sur un autre insère la sélection.
Cliquer ailleurs que sur un outil enlève le marquage de sélection.
eric
 

Pièces jointes

  • Permutation selon un ordre.xlsm
    16.1 KB · Affichages: 32

Dranreb

XLDnaute Barbatruc
Re : Fonction de permutation en VBA par un ordre spécifique

VB:
Sub PermSelMult()
Permut Selection.Areas(2), Selection.Areas(1)
End Sub
Sub Permut(ByVal Fin As Range, ByVal Déb As Range)
Fin.Cut
Déb.Insert xlShiftDown
Application.CutCopyMode = False
End Sub
Vous sélectionnez en maintenant la touche Ctrl enfoncée la plage à déplacer et la plage devant laquelle l'insérer, puis vous exécutez PermSelMult
 

Discussions similaires

Statistiques des forums

Discussions
312 534
Messages
2 089 383
Membres
104 152
dernier inscrit
sabalex