Décaler des valeurs

kabale53

XLDnaute Occasionnel
Bonjour

Je souhaite décaler dans la colonne U des valeurs situées initialement dans la colonne Q et ce selon le nouveau classement en T des N° situés initialement dans la colonne P.

Merci.
 

Pièces jointes

  • décaler des valeurs.xlsx
    11.8 KB · Affichages: 26

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Kabale, bonjour le forum,

Peut-être comme ça :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TN() As Variant 'déclare la variable TN (Tableau des Numéros)
Dim TV() As Variant 'déclare la variable TV (Tableaux des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim X As Integer 'déclare la variable X (incrément)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set O = Worksheets("Feuil1") 'définit l'onglet O
O.Columns("U:U").ClearContents 'efface les données en colonne U de l'onglet O
DL = O.Cells(Application.Rows.Count, "P").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne P de l'onglet O
X = 1 'initialise la variable X
For I = 1 To DL 'boucle sur toutes les lignes I de 1 à DL
  'si la cellule ligne I colone P de l'onglet O n'est pas vide, redimensionne le tableau des numéros TN,
  'récupère la ligne I dans le tableau des numéros, incrémente X
  If O.Cells(I, "P").Value <> "" Then ReDim Preserve TN(X): TN(X) = I: X = X + 1
Next I 'prochaine ligne de la boucle
For X = 1 To UBound(TN) 'boucle sur tous les éléments du tableau des numéros TN
  'définit la cellule de destination DEST (recherche X entier dans la colonne T)
  Set DEST = O.Columns("T:T").Find(X, , xlValues, xlWhole)
  ReDim Preserve TV(X) 'redimensionne le tableau des valeurs TV(X)
  TV(X) = O.Cells(TN(X), "P").CurrentRegion 'définit la tableau TV(X) (les cellules adjacentes à TN(X))
  DEST.Resize(UBound(TV(X), 1), UBound(TV(X), 2)).Value = TV(X) 'renvoie le tableau TV(X) dans DEST redimensionnée
Next X 'prochain élément de la boucle
End Sub

[Édition]
Bonjour PierreJean, nos posts se sont croisés... Je vois que tu fait la traite des blanches... Code toujours impeccable !...
 

Discussions similaires

Réponses
3
Affichages
215

Statistiques des forums

Discussions
312 113
Messages
2 085 427
Membres
102 889
dernier inscrit
monsef JABBOUR