Microsoft 365 Saisie automatique dans cellule en fonction d'une autre

odohe

XLDnaute Occasionnel
Bonjour, à tous

je tiens à préciser que je suis novice.
Voila ma question j'ai un classeur qui se nomme PCC y aurait-il possibilité avec un code VBA d'inscrire automatiquement dans les cellules de la colonne B en fonction du nombre indiquer dans les cellules A et qui va rechercher le résultat sur le classeur nommer Affectation Tram
Voici un exemple que j'aimerai obtenir

Classeur PCC
1031721


Classeur Affectation Tram
1031717



Ps: j'ai bien une formule qui fonctionne assez bien mais c'est pas terrible d'avoir des formule inscrit dans les cellules

1031718
=RECHERCHEV(A3;'Affectation Tram'!Y1:Z397;2;FAUX)

Merci d'avance pour votre aide.
 

Staple1600

XLDnaute Barbatruc
Re

On peut être patient et curieux en même temps ;)
Et pour nourrir sa curiosité, on peut commencer par
et avec les mot-clés idoines trouver quelques exemples en guise d'inspiration
par contre j'aimerai bien que vous puissiez m'aider a sécuriser certaines colonnes, je m'explique est-ce possible de verrouiller certaines colonnes en fonction de son User de session windows.
Il y a déjà tout cela en magasin dans les archives ;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Trois exemples pour le nom de l'user ;)
VB:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Sub TestUser()
Dim lpBuff As String * 25, ret&, vUser$, vUser1$, vUser2$
ret = GetUserName(lpBuff, 25)
vUser = Environ("USERNAME")
MsgBox vUser, vbInformation, "Test1"
vUser1 = Application.UserName
MsgBox vUser1, vbInformation, "Test2"
vUser2 = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
MsgBox vUser2, vbInformation, "Test3"
End Sub
Je te laisse faire d'autres recherches et utiliser le code ci-dessus pour protéger telles ou telles colonnes
(et tout cela vainement si...)
 

Staple1600

XLDnaute Barbatruc
Re

Avec cet exemple c'est plus clair?
VB:
Sub test()
Dim vUser$
'vUser = Application.UserName
vUser = "Toto" 'juste pour le test
Select Case vUser
Case Is = "Toto"
MsgBox "code pour VBA pour Toto"
'donc ici on mettre le code pour vérouiller
'l'accès au colonnes pour Toto
Case Is = "Titi"
MsgBox "code pour VBA pour Titi"
Case Else
MsgBox "code pour VBA pour les autres"
End Select
End Sub
NB: Ce n'est qu'un code de test
 

odohe

XLDnaute Occasionnel
J'ai introduis cette ligne de code mais je n'ai pas l'impression que cela fonctionne

VB:
Sub test()
Dim vUser$
'vUser = Application.UserName
vUser = "Odohe" 'juste pour le test
Select Case vUser
Case Is = "Odohe"
MsgBox "code pour VBA pour Odohe"
'donc ici on mettre le code pour vérouiller
'
    Cells.Select
    Selection.Locked = True
    Selection.FormulaHidden = True
    Range("G3:G30").Select
    Selection.Locked = False
    Selection.FormulaHidden = True
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Range("G29").Select
    ActiveWindow.SmallScroll Down:=-50
    Range("G3").Select
'l'accès au colonnes pour Toto
Case Is = "Titi"
MsgBox "code pour VBA pour Titi"
Case Else
MsgBox "code pour VBA pour Titi"
End Select
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Comme je l'ai dit précédemment, c'était un code rédigé de telle sorte qu'on puisse faire un test
Donc si tu veux tester le Username (comme tu l'as précédemment indiqué), il fallait évidemment modifier le code ainsi
VB:
Sub test()
Dim vUser$
vUser = Application.UserName

Select Case vUser
Case Is = "Toto"
MsgBox "code pour VBA pour Toto"
'donc ici code pour l'utilisateur qui se nomme Toto
'il faut évidemment qu'il existe
Case Is = "Titi"
MsgBox "code pour VBA pour Titi"
Case Else
MsgBox "code pour VBA pour les autres"
End Select
End Sub

Sinon voir dans les archives du forum, il y a de nombreux exemples de gestions d'accès à un classeur selon le nom ou l'username.
 

odohe

XLDnaute Occasionnel
desolé d'user de t'as patience malheureusement je comprend plus ou moins ce que tu me dis mais je n'arrive pas a le reproduire en code
par exemple qu'elle est le code a placer a cette endroit en fonction de mes attentes
VB:
MsgBox "code pour VBA pour Utilisateur actif"
'donc ici on mettre le code pour vérouiller
'l'accès au colonnes pour Toto

j'essaierai demain après un peu de repos :)
Merci
 

Staple1600

XLDnaute Barbatruc
Re

Une dernière pour la route
VB:
Sub test_III()
Dim vUser$
ActiveSheet.Unprotect
Cells.Locked = True
Cells.FormulaHidden = True
vUser = Application.UserName
Select Case vUser
Case Is = "CHAINECARACTERE" '-< correspond exactement à Application.UserName
'donc remplacer par la valeur de Application.UserName
Range("G3:G30").Locked = False
Range("G3:G30").FormulaHidden = True
Case Is = "Titi"
MsgBox "code pour VBA pour Titi"
Case Else
MsgBox "code pour VBA pour les autres"
End Select
ActiveSheet.Protect
End Sub
Suggestion en passant:
Ouvre un autre discussion pour cette question
Cette discussion en est déjà à 5 pages.
 

Discussions similaires

Statistiques des forums

Discussions
312 172
Messages
2 085 932
Membres
103 050
dernier inscrit
HAMZA BKA