Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Descendre une valeur et récupérer la valeur commune

Meosus

XLDnaute Nouveau
Bonjour a tous,

je cherche une formule ou un VBA me permettant de décaler des valeurs en lui gardant sa valeur commune.

A la base, les valeur associé sont liée dans une seul cellule par un séparateur "/" (exemple: BBB/CCC) apres utilisation de la fonction "Données/Convertir" on les retrouve de façon BBB en 'C3' et CCC en 'D3' et la valeur commune toujours en B3. Je souhaiterais obtenir:

B3 (Valeur commune) C3 -> BBB
B4 (Valeur commune) C4 -> CCC

Exemple joint en Excel.



merci d'avance pour vos retour

Meosus
 

Pièces jointes

  • DECALAGE.xlsx
    10.9 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonjour Meosus, WTF, JHA,

Voyez le fichier .xlsm joint et la macro affectée au bouton :
VB:
Sub Eclater()
Dim sep$, resu(), tablo, i&, vc, s, j%, n&
sep = "/"
ReDim resu(1 To Rows.Count, 1 To 2)
tablo = [A1].CurrentRegion.Resize(, 2) 'matrice, plus rapide
For i = 1 To UBound(tablo)
    vc = tablo(i, 1)
    s = Split(tablo(i, 2), sep)
    For j = 0 To UBound(s)
        n = n + 1
        resu(n, 1) = vc
        resu(n, 2) = s(j)
Next j, i
'---restitution---
With Feuil1 'CodeName de la feuille de destination, à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[D1] '1ère cellule de destination, à adapter
        If n Then .Resize(n, 2) = resu
        .Offset(n).Resize(.Parent.Rows.Count - n - .Row + 1, 2).ClearContents 'RAZ en dessous
        .Resize(, 2).EntireColumn.AutoFit 'ajuste les largeurs
    End With
    With .UsedRange: End With 'actualise la barre de défilement verticale
End With
End Sub
Il n'est pas nécessaire d'utiliser la commande Convertir.

A+
 

Pièces jointes

  • Eclater(1).xlsm
    18.7 KB · Affichages: 3

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…