Microsoft 365 Index Equiv vba ?

  • Initiateur de la discussion Initiateur de la discussion gillmo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gillmo

XLDnaute Occasionnel
bonjour,

J'ai un fichier dans lequel j'ai une liste de salarié avec leur affectation, et je souhaite dans un autre onglet, indiqué 100% dans l'affectation correspondante si le salarié a une affectation ou vide s'il n'a pas d'affectation.

J'ai commencé un code via ce que j'ai pu trouvé sur les différents forums, mais bien évidemment si je suis là c'est que ce n'est pas concluant. Entre temps, j'ai tenté différents codes, mais cela ne fonctionne pas alors je remets

VB:
Sub test()
Dim J As Long
Dim I As Long

For I = 5 To 11
For J = 5 To 9

a = Application.Match(Cells(I, 1), Feuil1.Range("A5:A600"), 0)
b = Application.Match(Cells(4, J), Feuil1.Range("H5:H600"), 0)

Cells(I, J) = Application.Index(Feuil1.Range("H5:H532"), a, b, 0)


Next
Next

End Sub


Merci pour votre aide
 

Pièces jointes

Bonjour Gillmo,
Pas tout compris, mais une tentative en PJ.
On cherche le salarié en feuil2, son affectation en feuill1, la place de l'affectation en feuil2 et on met un X pour le salarié à la bonne affectation.
VB:
Sub test()
    Dim I%, DL%, Nom%, Affectation%
    DL = Sheets("Feuil1").Range("A65500").End(xlUp).Row 'Dernière ligne
    For I = 5 To DL
        Nom = Application.Match(Cells(I, "A"), Feuil2.Range("A:A"), 0)              ' Place du Nom
        If Cells(I, "H") <> "" Then
            Affectation = Application.Match(Cells(I, "H"), Feuil2.Range("3:3"), 0)  ' Place de l'affectation
            Feuil2.Cells(Nom, Affectation) = "X"                                    ' Une croix à intersection Nom Affectation
        End If
    Next I
End Sub
 

Pièces jointes

Bonjour Chris et Sylvanu,

Chris, je n'ai donné qu'une partie de la liste, mais j'ai plus de 500 salariés, et plus de 30 affectations possible. De plus derrière tout cela, j'aurai des calculs de masse salariale selon des règles de gestions, et je veux éviter d'alourdir le fichier par des formules, si je peux faire autrement.
Depuis quelque temps j'ai découvert power query, et même si j'y ai pensé pour mon problème, je n'ai pas vu comment je pouvais l'utiliser et l'automatiser.

Sylvanu, oui tu as bien compris ma demande, même si celle ci n'était pas aussi clair que je le pensais. Par contre, à la place des X, je vais mettre 100%.

Merci à tous les deux d'avoir consacré du temps.
 
Merci Sylvanu, le code paraît simple, mais j'étais bloqué dans la méthode. Peux tu me dire à quoi correspond le "H" dans la dernière ligne (j'imagine le numéro de la colonne H mais je me trompe peut être) et le c n'est pas utilisé dans la suite du code, et pourtant il doit servir.
 
La colonne correspondant à l'affectation est :
VB:
Affectation = Application.Match(Cells(I, "H"), Feuil2.Range("3:3"), 0)
Ensuite on range 100% dans la cellule qui a Ligne=Nom et Colonne=Affectation par :
Code:
Feuil2.Cells(Nom, Affectation) = "100%"
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
236
Réponses
4
Affichages
177
Réponses
8
Affichages
233
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
144
Réponses
2
Affichages
201
Réponses
8
Affichages
466
Réponses
10
Affichages
281
Réponses
5
Affichages
232
Retour