Macro Excel - Cellules "vides" et conditions

  • Auteur de la discussion Membre supprimé 1
  • Date de début
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

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
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 958
Membres
1 586 383
Dernier membre
potofeu
Partager cette page
Haut