Correspondance
Bonjour,
J'aurai besoin de votre aide.
Je possède une feuille "Utilisateur" avec une date d'entrée et une date de sortie.
Je souhaiterai dans cette feuille utilisateur en colonne D, mettre "Ok" lorsque que :
le nom et le prénom correspondent à la feuille SFR et il possède une date de sortie égale à "NULL"
Et mettre "Ok sortie" lorsque :
le nom et le prénom correspondent à la feuille SFR et il possède une réelle date de sortie.
Avez vous une solution ?
Je vous en serai reconnaissant
Merci
Bonjour Harry, heu pardon, Davbis, bonjour le forum,
Ton énoncé n'est pas assez précis pour te proposer une réponse.
Où se trouvent les colonnes Nom, Prénom dans l'onglet Utilisateur ?
Où se trouvent les colonnes Nom, Prénom dans l'onglet SFR?
Bonjour Harry, heu pardon, Davbis, bonjour le forum,
Ton énoncé n'est pas assez précis pour te proposer une réponse.
Où se trouvent les colonnes Nom, Prénom dans l'onglet Utilisateur ?
Où se trouvent les colonnes Nom, Prénom dans l'onglet SFR?
Ahah merci pour ta réponse !
J'ai modifié mon message avec le fichier joint.
Merci
Re,
Essaie comme ça :
Sub Macro1()
Dim OU As Worksheet 'déclare la variable OU (Onglet Utilisateur)
Dim OS As Worksheet 'déclare la variable OS (Onglet SFR)
Dim TVU As Variant 'déclare la variable TVU (Tableau des Valeurs Utilisateur)
Dim TVS As Variant 'déclare la variable TVS (Tableau des Valeurs SFR)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim DEB As Double 'déclare la variable DEB (DÉBut) (à supprimer par la suite)
DEB = Timer 'définit la varable DEB lance le chronomètre (à supprimer par la suite)
Set OU = Worksheets("Utilisateur") 'définit l'onglet OU
OU.Columns(4).ClearContents 'supprime d'éventuelles anciennes valeurs dans la colonne D
TVU = OU.Range("A1").CurrentRegion.Resize(, 4) 'définit le tableau des valeurs TVU (la colonne D aussi avec le Resize)
Set OS = Worksheets("SFR") 'définit l'onglet OS
TVS = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TVS
For I = 1 To UBound(TVU, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeur TVU
For J = 1 To UBound(TVS, 1) 'boucle 2 : sur toutes les lignes J du tableau des valeur TVS
If TVU(I, 1) = TVS(J, 2) And TVU(I, 2) = TVS(J, 3) Then 'condition 1 : si les nom/prénom concordent
If TVU(I, 3) = "NULL" Then 'condition 2 : si la date vaut "NULL"
TVU(I, 4) = "Ok" 'renvoie "Ok" dans la données ligne I colonne 4 de TVU
Else 'sinon (condition 2)
TVU(I, 4) = "Ok sortie" 'renvoie"Ok sortie" dans la données ligne I colonne 4 de TVU
End If 'fin de la condition2
Exit For 'sort de la boucle 2
End If 'fin de la condition 1
Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
OU.Range("D1").Resize(UBound(TVU, 1), 1).Value = Application.Index(TVU, , 4) 'renvoie dans D1 redimensionnée la colonne 4 du tableau TVU
MsgBox Timer - DEB 'message avec temps du chronomètrage (à supprimer par la suite)
End Sub± 20 secondes chez moi pour boucler la macro...
Merci à toi pour ta réponse.
Je travaille actuellement sans utiliser de macro, mais merci pour ta précieuse aide
De plus, je me suis trompé de fichier... je créer un nouveau post en espérant recevoir de l'aide.
A+