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

XL pour MAC Comment répartir 10 nombres en face du nombre correspondant d'une colonne de 50 nombres

gluon1976

XLDnaute Nouveau
Bonjour,
J'aurais besoin d'un gros coup de pouce et je ne sais pas où ni comment trouver l'info.
Voilà mon cas de figure. Colonne A: j'ai généré une liste avec le chiffre 1 jusqu'au nombre 50 (de 1 à 50, verticalement dans la colonne), correspondant à la ligne 1 jusqu'à la ligne 50 dans excel.
Colonne B: j'ai une liste triée de 10 chiffres/nombres aléatoires les uns sous les autres. Exemple: 3, 7, 9, 17, 21, 24, 29, 37, 44. Ces 10 chiffres, contenus entre 1 et 50 sont placés l'un après l'autre sur les lignes 1 à 10.
Je souhaiterais que chaque chiffre de la colonne B soit "envoyé" en face du du numéro correspondant dans la liste de la colonne A.
Donc, le chiffre 3 de la colonne B se retrouverait en face du chiffre 3 de la colonne A (ligne 3 du tableau excel), le chiffre 7 de la colonne B se retrouverait en face du chiffre 7 de la colonne A, etc. Donc, en face des chiffres 1, 2, 4, 6, 8, etc de la colonne A il n'y aurait que des cellules vides dans la colonne B.
Merci!
 

gluon1976

XLDnaute Nouveau
Rebonsoir à tous. Merci encore de votre réactivité et de votre espièglerie! ;0)
A lire vos réponses, je me suis insuffisamment ou mal exprimé (voire les deux). Je ne suis pas au clair avec les macros, mais ce que j'en ai compris concerne toujours le fait de reporter les chiffres triés dans une autre colonne. Or, je voudrais trier directement les chiffres dans la colonne, et plus encore, cela doit se répéter pour des colonnes adjacentes. Un mauvais dessin valant 100 bonnes explications (ou est-ce le contraire?), je vous joins une illustration que j'espère parlante.
 

gluon1976

XLDnaute Nouveau
Eh bien, j'avais uploadé 2 clichés d'écran qui se sont volatilisés apparemment. Je le mets dans ma réponse directement à nouveau.
 

Pièces jointes

  • Résultat escompté.jpg
    97.2 KB · Affichages: 14
  • Colonnes non triées.jpg
    89.1 KB · Affichages: 12

Victor21

XLDnaute Barbatruc
Re,

Et ça marche pour incrémenter sur toutes les colonnes suivantes?

TB = Range("B1:B10") 'définit le tableau TB
A votre avis ? (mais ce n'était pas dans le cahier des charges de votre premier message)
Il vous faudra boucler sur toutes les colonnes concernées. Mais sans moi : pas à l'aise avec les macros, je préfère m'en passer plutôt que me retrouver le "bec dans l'eau" le jour où "ça plante" et où "y'a person qui répond".
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

Fonctionnera que tu aies 9, 10 ou 50 nombres, de la colonne 2 à la colonne x
S'arrête à la colonne vide en ligne 1.
Pas de contrôle si nombre >50, ajouter un test si besoin pour éviter le plantage.
VB:
Sub repartir()
    Dim col As Long, lig As Long, tmp1, tmp2(1 To 50, 1 To 1), i As Long
    col = 2
    Do While Cells(1, col) > 0
        tmp1 = Range(Cells(1, col), (Cells(Rows.Count, col).End(xlUp))).Value
        Erase tmp2
        For i = 1 To UBound(tmp1)
            tmp2(tmp1(i, 1), 1) = tmp1(i, 1)
        Next i
        Cells(1, col).Resize(UBound(tmp2)) = tmp2
        col = col + 1
    Loop
End Sub
eric
 

patricktoulon

XLDnaute Barbatruc
bonsoir
si tes liste de nombres commence bien en ligne 1 et que tu n'a pas de blanc entre 2
normalement ca va jusqu’à la dernière colonne avec un nombre
ca va jusqu'a la dernière ligne avec un nombre de chaque colonnes meme si le nombre de lignes diffère d'une colonne a l'autre
VB:
Sub TEST()
    Dim tabl, tabl2(), i&, c&
    c = 2
    Do While Sheets(1).Cells(1, c) <> ""
         With Sheets(1).Cells(1, c).Resize(Cells(Rows.Count, 1).End(xlUp), 1)
            tabl = .Value
            ReDim tabl2(1 To UBound(tabl), 1 To UBound(tabl, 2))
            i = 1
            Do While tabl(i, 1) <> ""
                tabl2(tabl(i, 1), 1) = tabl(i, 1): i = i + 1
            Loop
            .Value = tabl2
        End With
    c = c + 1
       Loop
End Sub
testé sur 2007
 

Discussions similaires

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