XL 2016 Renvoyer numéros sans laisser de vide

alka229

XLDnaute Nouveau
Bonjour,
j'ai un tableau qui contient:
de A3 à A12 des numéros et du B3:B12 des noms ((3 noms)
Un autre tableau contient de A16 à A18 les 3 noms.
Je souhaiterais avoir une formule dans les cellules de B16 à F16
qui me renvoie les numéros correspondant au nom dans la cellule A16, sans laisser de vide (B16:F16)
Quelqu'un pourrait t-il m'aider?
 

Pièces jointes

  • Classeur2.xlsx
    17.1 KB · Affichages: 15

soan

XLDnaute Barbatruc
Inactif
Rebonjour @alka229,

ton fichier en retour. :)

tu as écrit : « Je souhaiterais avoir une formule dans les cellules de B16 à F16 » ; désolé, c'est peut-être possible par formule, mais pour moi, c'est bien plus facile de faire ton exo avec une macro VBA !​

ouvre le fichier joint en fin de post ; fais Ctrl e ➯ travail effectué ! 😊

VB:
Option Explicit

Sub Essai()
  Dim nom$, i As Byte, j As Byte, k As Byte
  Application.ScreenUpdating = 0: [B16:F18].ClearContents
  For i = 16 To 18
    nom = Cells(i, 1): j = 2
    For k = 3 To 12
      If Cells(k, 2) = nom Then
        With Cells(i, j)
          .NumberFormat = "000": .Value = Cells(k, 1)
        End With
        j = j + 1
      End If
    Next k
  Next i
End Sub

soan
 

Pièces jointes

  • Classeur2.xlsm
    22.9 KB · Affichages: 3
Dernière édition:

alka229

XLDnaute Nouveau
Rebonjour @alka229,

ton fichier en retour. :)

tu as écrit : « Je souhaiterais avoir une formule dans les cellules de B16 à F16 » ; désolé, c'est peut-être possible par formule, mais pour moi, c'est bien plus facile de faire ton exo avec une macro VBA !​

fais Ctrl e ➯ travail effectué ! 😊

VB:
Option Explicit

Sub Essai()
  Dim nom$, i As Byte, j As Byte, k As Byte
  Application.ScreenUpdating = 0: [B16:F18].ClearContents
  For i = 16 To 18
    nom = Cells(i, 1): j = 2
    For k = 3 To 12
      If Cells(k, 2) = nom Then
        With Cells(i, j)
          .NumberFormat = "000": .Value = Cells(k, 1)
        End With
        j = j + 1
      End If
    Next k
  Next i
End Sub

soan

Merci Soan,
... moi je suis un vrai bleu avec les Macro VBA !!
Je suis preneur s'il existe une formule aussi
 

soan

XLDnaute Barbatruc
Inactif
@alka229

ah, j'ai modifié mon post précédent car je croyais que tu n'avais pas vu mon fichier ! 😅 pour une solution par formule, je ne pourrais pas t'aider ; mais surveille les futures réponses : peut-être qu'un autre intervenant pourra t'apporter cette solution ? bonne chance ! 🍀

soan
 

alka229

XLDnaute Nouveau
Rebonjour @alka229,

ton fichier en retour. :)

tu as écrit : « Je souhaiterais avoir une formule dans les cellules de B16 à F16 » ; désolé, c'est peut-être possible par formule, mais pour moi, c'est bien plus facile de faire ton exo avec une macro VBA !​

ouvre le fichier joint en fin de post ; fais Ctrl e ➯ travail effectué ! 😊

VB:
Option Explicit

Sub Essai()
  Dim nom$, i As Byte, j As Byte, k As Byte
  Application.ScreenUpdating = 0: [B16:F18].ClearContents
  For i = 16 To 18
    nom = Cells(i, 1): j = 2
    For k = 3 To 12
      If Cells(k, 2) = nom Then
        With Cells(i, j)
          .NumberFormat = "000": .Value = Cells(k, 1)
        End With
        j = j + 1
      End If
    Next k
  Next i
End Sub

soan

Soan, désolé je reviens encore vers toi.
j'ai téléchargé le fichier mais je ne vois pas comment ça fonctionne.
Mes cellules à remplir sont toujours vides.
 

Discussions similaires

Statistiques des forums

Discussions
312 276
Messages
2 086 714
Membres
103 377
dernier inscrit
fredy45