M
Membre supprimé 1
Invité
Bonjour,
J'ai fait une macro basique via l'enregistreur pour ajouter un nouvel utilisateur dans une liste et changé qques petits trucs.
On doit renseigner 8 champs et 7 autres se font automatiquement avec des formules de recherchev et de si.
Mon problème vient d'une part que je sélectionne une plage maxi d'utilisateurs à rajouter (46) et cette plage contient les formules qui sont recopiées en valeur sur la liste des utilisateurs. De ce fait, même si il n'y a pas d'utilisateur à ajouter, il y a toujours des formules qui donnent des cases où il n'y a rien dans la liste, mais qui sont comptées comme des cellules non-vides.
Après ça, il serait peut-être judicieux de juste chercher les colonnes où on a rempli qqc pour éviter la recopie de toute les formules.
Comment puis-je faire ?
Voici déjà la mini-macro
Question bonus :
Je souhaiterais appliquer une condition au rajout d'un utilisateur dans la liste (nom et matricule précisemment). Comment puis-je indiquer que la macro doit s'arrêter si matricule + nom sont retrouvés dans la liste ? Et est-il possible que nom+matricule s'affichent dans une msgbox ?
J'espère avoir été assez clair dans mes explications.
Merci d'avance pour vos réponses qui m'aideront beaucoup
J'ai fait une macro basique via l'enregistreur pour ajouter un nouvel utilisateur dans une liste et changé qques petits trucs.
On doit renseigner 8 champs et 7 autres se font automatiquement avec des formules de recherchev et de si.
Mon problème vient d'une part que je sélectionne une plage maxi d'utilisateurs à rajouter (46) et cette plage contient les formules qui sont recopiées en valeur sur la liste des utilisateurs. De ce fait, même si il n'y a pas d'utilisateur à ajouter, il y a toujours des formules qui donnent des cases où il n'y a rien dans la liste, mais qui sont comptées comme des cellules non-vides.
Après ça, il serait peut-être judicieux de juste chercher les colonnes où on a rempli qqc pour éviter la recopie de toute les formules.
Comment puis-je faire ?
Voici déjà la mini-macro
Code:
Sub AjoutUsers()
Application.ScreenUpdating = False
MsgBox ("Merci d'attendre la fin de la mise à jour")
Worksheets("Utilisateurs").Select
Selection.AutoFilter Field:=3 'Remettre le filtre auto à 0
Worksheets("Ajout Users").Select
Range("A5:O50").Select 'Sélectionner la plage maxi d'utilisateurs à ajouter
Selection.Copy
Worksheets("Utilisateurs").Activate
Range("A" & Range("A65535").End(xlUp).Row + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'Coller la sélection d'utilisateurs
'Vider les cellules renseignées
Worksheets("Ajout Users").Select
Range("C5:C50").Select
Selection.ClearContents
Range("G5:G50").Select
Selection.ClearContents
Range("H5:H50").Select
Selection.ClearContents
Range("I5:I50").Select
Selection.ClearContents
Range("J5:J50").Select
Selection.ClearContents
Range("K5:K50").Select
Selection.ClearContents
Range("M5:M50").Select
Selection.ClearContents
Range("N5:N50").Select
Selection.ClearContents
Range("A1").Select
MsgBox ("Utilisateur(s) ajouté(s)")
Application.ScreenUpdating = True
End Sub
Question bonus :
Je souhaiterais appliquer une condition au rajout d'un utilisateur dans la liste (nom et matricule précisemment). Comment puis-je indiquer que la macro doit s'arrêter si matricule + nom sont retrouvés dans la liste ? Et est-il possible que nom+matricule s'affichent dans une msgbox ?
J'espère avoir été assez clair dans mes explications.
Merci d'avance pour vos réponses qui m'aideront beaucoup