Modification VBA

Bonjour,

Quelqu'un peux m'aider de modifier le suivant fichier vba:

1. De mettre la fonction dans l'administration (Mot de passe: 1234) qu'on peux seulement editer le dernier Barcode dans la derniere ligne indiquer dans la listbox de la matière sélectionner.

2. La fonction que seulement les super Admins peuvent supprimer des lignes et editer tous les valeurs indiquer dans la listbox.

Merci pour votre aide.

16fichier-vba.xlsm (136.71 Ko)

Salut Jerry,

Salut le Forum,

Voici ton fichier modifié avec un mode "Super Admin" rajouter à ton Userform !

Je te laisse tester et revenir vers nous

25pour-jerry.xlsm (122.15 Ko)

Merci beaucoup,

Mais c'est possible que les admin peuvent justement editer la dernière Valeur dans la dernière ligne? (voir photo)

Ainsi que je supprime la ligne qui'il me recharge la listbox et qu'il doit rester dans la matière séléctionner!

Et encore une petite question c'est possible de controler l'accès "Super admin" par le nom d'utilisateur windows si p.ex. l'utilisateur "xy" et indentifier alors il a l'accès...

printscreen1

Re !

Alors pour ta première question [...]

Mais c'est possible que les admin peuvent justement editer la dernière Valeur dans la dernière ligne? (voir photo)

[...] c'est déjà le cas Si tu regarde le code empechant l'accès au TextBox [...]

Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
If Me.OptionButton2 = False And _
ListBox1.ListIndex + 1 <> ListBox1.ListCount Then _
    MsgBox "Nécessite d'activer le mode Super Admin !", vbExclamation, "Accès refusé": Exit Sub
End Sub

[...] tu peux voir que la modification se bloque si le mode "Super Admin" est désactivé ET SI la ligne est différente de la dernière ligne.

Et encore une petite question c'est possible de controler l'accès "Super admin" par le nom d'utilisateur windows si p.ex. l'utilisateur "xy" et indentifier alors il a l'accès...

Oui c'est possible de connaître l'utilisateur avec le code ci-dessous :

Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long
Private Function NomUtilisateur() As String
Dim sUserName As String, iSize As Long
GetUserName sUserName, iSize
sUserName = Space(iSize)
GetUserName sUserName, iSize
NomUtilisateur = sUserName
End Function
Sub Test()
MsgBox NomUtilisateur
End Sub

A dispo!

@Juice Merci beaucoup tu es excellent

J'ai encore des petits soucis tu peus me mettre les Textbox1 ; 2 ; 4; 5 à un Label et me supprimer la Enreg Textbox

MERCI

Re-

me mettre les Textbox1 ; 2 ; 4; 5 à un Label

Te "mettre les Text à un Label" ?

C'est-à-dire :p ?

Ehm,

With ListBox1

If .ListIndex <> -1 Then

Label7.Caption = .List(.ListIndex, 0)

End If

End With

Mais si je supprime maintenant la TEXTBox1 je reçois une erreur

Le plus facile c'est que tu peux me mettre le UserForm si je clique sur le bouton "Editer CodeBarre" alors une Input box ouvre avec le dernier Code tous en bas à droite dans la liste de la matière sélectionner. Et puis si je clique sur OK le code et modifier et la liste avec la matière sélectionner fait un "reload" où on peut voir toute suite le code barre éditer.

Si quelqu’un a l'accès du super admin alors on a le bouton "Editer ligne sélectionner" là on peut éditer les deux code barre de la ligne sélectionner de toutes la liste dans la matière sélectionner "de"...... et "jusqu'à" ....... Et puis si je clique sur OK le code et modifier et la liste avec la matière sélectionner fait un "reload" où on peut voir toute suite la ligne éditer.

Avec un autre bouton je peux ajouter seulement une Matière!

Les super Admin peuvent supprimer et éditer des Matières.

Si tu veux quelque chose pour ton travaille alors je peux te faire un Bon Cadeau chez Amazon

Re- Jerry,

Excuse moi pour le temps mais, au vue de tes demandes, j'ai préféré reprendre ton UserForm à zéro

Ci-dessous la liste des modifications apportées

Ajout d'une feuille des administrateurs

Donc je t'ai rajouté une "Feuil des Admin" où tu va recenser tout ceux pouvant avoir l'accès administreur (donc modif, édition et suppression) des barcodes

Grâce à ça, quand l'Userform va s'ouvrir, il va détecter automatiquement si l'utilisateur est un Admin, un Super Admin ou un simple utilisateur

Pour ajouter un Admin à cette feuille, je t'ai créé un nouvel Userform où l'ID du PC ce met automatiquement

Il te suffit ensuite de masquer la feuille des Admin, ou de protéger les modifs par un code

Le Mode Super Admin

Le mode Super Admin permet maintenant d'ajouter une matière, de supprimer une ligne ou d'éditer une ligne

La mise à jour ce fait automatiquement dans le classeur Excel et dans la ListBox

Le Mode Admin

Le Mode Admin n'affiche que le bouton "Édition de la dernière ligne affichée" mais je n'ai pas compris ce qu'il avait le droit de modifier par contre : La Matière ? Le "Barcode de" ? Le "jusqu'à" ? La colonne sans en-tête

Voilà, je te laisse tester (pense bien a te créer une ligne Admin pour pas être bloqué) et revenir vers moi pour les modifications ou les rajouts (il y a pas mal de trucs que tu peut mettre en plus, mais voyons déjà si ce que j'ai fais te conviens)

Si tu veux quelque chose pour ton travaille alors je peux te faire un Bon Cadeau chez Amazon

C'est très sympa de ta part mais on est sur un Forum gratuit donc bon t'inquiète pas ^^ !

A dispo!

12pour-jerry.xlsm (115.18 Ko)

Boah super t'est vraiment un Expert au Vba j'ai déjà une mauvaise conscience devant toi...

Alors le admin a seulement le droit de modifier le dernier CodeBarre "Jusqu'à" dans la dernière ligne de la matière sélectionner.

Et il a le droit d'ajouter une nouvelle matière.

Au voler "Administration - Edition des barcodes" et au voler "Administrateur - Edition des barcodes" tu peux me mettre la somme totale des Barcodes de la matière sélectionner.

p.ex. de C000039500 et C000039620 = 121 Barcodes

de C000039500 et C000039636 = 137 Barcodes

Totales: 258

Si quelqu'un veut éditer un CodeBarre qui existe déjà entre une ligne des matières alors ce n’est pas possible! Chaque Barecode existe 1 fois p.ex. C000000001 - C0000000010 le C000000008 existe déjà dans une des matières.

L'indication du nombre de Barcode c'est un nombre fixe pas éditable il se calcule automatiquement normalement

Pour protéger les feuilles "Daten" et "Feuil des Admin" on peut insérer le code suivant?. Au Worksheet

Private Sub Worksheet_Activate()

If Environ("Username") <> "" Then

Sheets("Daten").Visible = xlSheetVeryHidden

Sheets("Feuil des Admin").Visible = xlSheetVeryHidden

End If

End Sub

Le fichier joint c'est le fichier avec les Barcodes originaux

MERCI BEAUCOUP ENCORE UNE FOIS POUR TON TRAVAILLE ET POUR TON AIDE!!!!

untitled

Re-

Ci-joint ton fichier modifié avec les commentaires de ton dernier post !

pardonne mes absences, mais on est sous l'eau au taff en ce moment

A dispo!

5pour-jerry.xlsm (110.80 Ko)

Merci beaucoup c'est ca que je veux

Mais c'est pas possible d'intégrer le script

Private Sub Worksheet_Activate()

If Environ("Username") <> "" Then

Sheets("Daten").Visible = xlSheetVeryHidden

Sheets("Tabelle1").Activate

End If

End Sub

Si je bloque les 2 feuilles c'est OK mais j'ai encore autre feuilles dans le même fichier qu'ils sont bloqué que autres personnes peuvent débloquer MAIS pas les 2 feuilles ils doivent rester bloqué!

Re-

Merci beaucoup c'est ca que je veux

Parfait

Mais c'est pas possible d'intégrer le script

C'est que tu veux bloquer certaines feuille, si l'ID PC n'apparait pas dans la Feuille Admin ?

Si non, merci de me préciser la méthode que tu veux utiliser

Seulement 1 personne (1 ID) a l'accées aux 2 feuilles! Tous les autres feuilles restent invisible de la façon normale de microsoft office si on tappe le code il débloque les feuilles. Mais les autres 2 feuilles restent bloquer!

Re-

Bon je comprend pas vue que le classeur que j'ai ne fais que 2 feuilles, et je ne vois pas ce que tu veux masquer de plus :p

Mais voici un code qui protégera la feuille de ton choix, en placant le code directement dans le module de la feuille :

Private Sub Worksheet_Activate()
Dim sUserName As String, iSize As Long, Adm As Worksheet, c As Range, i As Long
ActiveSheet.Unprotect Password:="1234"
Cells.Font.ThemeColor = xlThemeColorDark1
For i = 1 To ActiveSheet.Shapes.Count
    ActiveSheet.Shapes.Range(Array("Button " & i)).Visible = False
Next
ActiveSheet.Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
GetUserName sUserName, iSize
sUserName = Space(iSize)
GetUserName sUserName, iSize
Set c = Sheets("Feuil des Admin").Columns(5).Find(sUserName)
If Not c Is Nothing Then
    If Cells(c.Row, 8) = "Oui" Then
        ActiveSheet.Unprotect Password:="1234"
        Cells.Font.ColorIndex = xlAutomatic
        For i = 1 To ActiveSheet.Shapes.Count
            ActiveSheet.Shapes.Range(Array("Button " & i)).Visible = True
        Next
        GoTo ExitSub
    End If
End If
On Error GoTo AccesDenied
If ActiveSheet.Unprotect = True Then
    Cells.Font.ColorIndex = xlAutomatic
    For i = 1 To ActiveSheet.Shapes.Count
        ActiveSheet.Shapes.Range(Array("Button " & i)).Visible = True
    Next
    GoTo ExitSub
End If
AccesDenied:
MsgBox "Accès refusé !", vbCritical
ExitSub:
End Sub

Avec ce code, le contenu de la feuille est entièrement masqué (texte et bouton de commande), et il est impossible de modifier les cellules.

Il faut soit le code pour activer la feuille, soit avoir "Oui" dans la colonne "H" de la feuille "Feuil des Admin" pour que sa se délock automatiquement

Je te laisse tester le fichier ci-joint.

A dispo

24pour-jerry.xlsm (113.69 Ko)

Bon je vais modifier sa a mes besoin

Mais je marquer encore au voler "Recherche Barcode ou Matière" si tu inscris pas de Barcode et tu cliques sur "Cherchez" alors une erreur s'affiche.

Et tu peus me mettre encore si je fais des modification dans l'administration alors qu'il fait un reload du sub "Recherche Barcode ou Matière"

merci mille fois

1) Et que j'ai encore remarquer que c'est encore possible de de créer une deuxième Matière avec le même nom qu'il est déjà dans la liste! Sa se doit être PAS possible même pas pour le super Admin.

2) Et las possibilité d'inscrire un Barcode qu'il existe déjà dans la liste!

p.ex. si le Barcode de la matière1 commence par C000000001 et finit par C000000100 alors c'est plus possible d'inscrire un Barcode qui finit ou commence p.ex. par C000000050 parce qu'il est déjà dans 1 - 100. CHAQUE CODE EXISTE Q'UNE FOIS!

Il doit contrôler les listes des matière qu'ils sont déjà dans la base de données.

Rechercher des sujets similaires à "modification vba"