La macro fonctionne, mais pas quand je l'intègre dans mon code VBA
Bonjour,
Je suis en train de gérer les droits d'accès de mon classeur, et j'essaie en vain de copier/Coller les droits d'un utilisateur dans une feuille "Droits"
J'ai une feuille "Accès" saisie du Login et mot de passe
J'ai une feuille "Utilisateurs" qui résume pour chaque utilisateur les feuilles accessibles
J'ai enfin une feuille "Droits" qui récupère les autorisations de l'utilisateur contrôlé.
La copie des données dans la feuille "droits" Fonctionne bien en tant que Macro, mais pas quand je l'intègre dans ma feuille VBA "Accès" C'est pourtant un copier/Coller, et depuis ce matin je planche dessus pour comprendre. Le test du numéro de ligne fonctionne bien pour autant, Sachant que dans la macro, je force le numéro de ligne pour tester, et que dans le code VBA je récupère la valeur de la variable.
Je ne vois pas ce qui peut empécher le fonctionnement dans mon code VBA. Il y a surement un piège que je ne vois pas.
Merci pour votre retour
Je vous joins le code VBA de la macro :
Sub LigneCopierColler()
' LigneCopierColler Macro
Dim Ligne As Integer
Ligne = 6
Sheets("Utilisateurs").Select
Rows(Ligne & ":" & Ligne).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Droits").Select
Rows("4:4").Select
ActiveSheet.Paste
Sheets("Utilisateurs").Select
Range("A1").Select
End Sub
Je vous ajoute mon code VBA ou est intégré les lignes de code de la macro
Option Explicit
Private Sub Label_Entrer_Click()
On Error Resume Next
'Déclaratin des variables
Dim Mot_de_Passe As String
Dim Login As String
Dim Ligne As Integer
'Configuration des variables Vlookup est l'équivalent de rechercheV
Mot_de_Passe = WorksheetFunction.VLookup(TxtLogin, Sheets("Utilisateurs").Range("A:C"), 2, 0)
Login = WorksheetFunction.VLookup(TxtLogin, Sheets("Utilisateurs").Range("A:C"), 1, 0)
If Login = "Adminis" And Mot_de_Passe = TxtMotPasse Then 'Contrôler si c'est l'administrateur
'Vider le formulaire de connexion
' TxtMotPasse = ""
' TxtLogin = ""
Worksheets("Utilisateurs").Activate
ElseIf Mot_de_Passe = TxtMotPasse And Login = TxtLogin Then 'Contrôler si c'est un utilisateur répertorié
'Vider le formulaire de connexion
' TxtMotPasse = ""
' TxtLogin = ""
Worksheets("Menu General").Activate
Else
MsgBox ("L'utilisateur ou le mot de passe n'est pas conforme !" & Chr(10) & "Veuillez procéder à la correction." & Chr(10) & Chr(10) & _
"Veuillez prendre éventuellement contact avec l'administrateur de l'application."), vbOKOnly + vbExclamation, "Contrôle utilisateur"
End If
'Copie des droits dans la feuille droits
'Recherche du numéro de ligne
If Not IsError(Application.Match(Login, Sheets("Utilisateurs").Range("A:A"), 0)) Then
Ligne = Application.Match(Login, Sheets("Utilisateurs").Range("A:A"), 0)
MsgBox "Le numéro de ligne est :" & Ligne
Sheets("Utilisateurs").Select
Rows(Ligne & ":" & Ligne).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Droits").Select
Rows("4:4").Select
ActiveSheet.Paste
Sheets("Utilisateurs").Select
Range("A1").Select
End If
End Sub
Bonjour
Sans fichier c'est un peu difficile de voir le souci
Déjà votre code que vous pouvez changer
Sub LigneCopierColler()
' LigneCopierColler Macro
Dim Ligne As Integer
Ligne = 6
Sheets("Utilisateurs").Rows(Ligne & ":" & Ligne).Copy Sheets("Droits").Rows("4:4")
Application.CutCopyMode = False
End Sub
Crdlt
Bonjour DAN
La syntaxe de votre correction résous mon problème, ça fonctionne très bien dans toutes mes options.
J'ai encore beaucoup apprendre et suis toujours admiratif des réponses qui sont faites.
Je retiens la formule pour d'autres développement, ou d'autres syntaxes.
Merci beaucoup et bonne journée.