automatisation d'un USF

Bricoltou

XLDnaute Occasionnel
Bonjour le Forum
J'ai besoin de vos compétences :):) car je dois modifier un fichier au 1er janvier suite à des changements juridiques.
Je m'explique :
1) lorsque je choisi une société dans C1 alors je voudrais que C2 se charge avec les locaux correspondants a la société
2) lorsque j'ai choisi le local alors je voudrais que T1 se charge du matricule correspondant au local
3) lorsque je choisi une affectation,je voudrais que le code analytique soit chargé dans T2 en fonction du local affiché dans C2 et l'affectation choisi dans C3
Je joint un fichier pour l'exemple,merci d'avance pour votre aide si précieuse.:):)

Cordialement
Bricoltou
 

Pièces jointes

  • Bricoltou.xlsm
    23.6 KB · Affichages: 32
  • Bricoltou.xlsm
    23.6 KB · Affichages: 32
  • Bricoltou.xlsm
    23.6 KB · Affichages: 30

Bricoltou

XLDnaute Occasionnel
Re : automatisation d'un USF

Bonjour Jpb388,le forum

J'ai crié victoire trop vite ,le point 2 ne fonctionne pas bien .
T1 se charge avec le nom de la société au lieu du matricule
quelqu'un peut-il m'aider SVP
Merci d'avance
Bricoltou
 

Pièces jointes

  • Bricoltou.xlsm
    27.7 KB · Affichages: 20
  • Bricoltou.xlsm
    27.7 KB · Affichages: 22
  • Bricoltou.xlsm
    27.7 KB · Affichages: 21

jpb388

XLDnaute Accro
Re : automatisation d'un USF

re
unhe simple erreur de colonne
Code:
Private Sub C2_Change()
C3.ListIndex = -1
T2 = ""
T1 = Feuil1.Cells(C1.ListIndex + 2, 3).Value
End Sub
tu copies et tu colles à la place de l'autre
ou
le 1 de Feuil1.Cells(C1.ListIndex + 2, 1).Value tu met un 3
 

Bricoltou

XLDnaute Occasionnel
Re : automatisation d'un USF

Bonsoir Jpb,le Forum

merci pour ton aide,j'avais déjà essayé de modifier le code comme tu me le suggère mais sa ne marche pas .

Exemple :
Si je choisi la sasu B et le local 2 alors j'obtiens l'analytique 706002 jusque que la c'est bon mais
si je choisi le local 3 alors j'ai le même code au lieu d'avoir 706003
Merci encore du temps passé sur ma question
Bricoltou
 

Bricoltou

XLDnaute Occasionnel
Re : automatisation d'un USF

Bonsoir le Forum,JPB388

JPB que je remercie :D m'a aidé sur le fichier ci joint mais je rencontre une erreur que je ne sais pas modifié .

Lorsque je choisi la SASU 1,le C2 est bien alimente avec le local 1 mais lorsque je sélectionne le local 1 je devrai avoir le matricule 706001 dans le T1 mais ce n'est pas le cas .
Quelqu'un peut -il m'aider SVP ?
pouvez également m'expliquer les codes code avec des commentaires car je dois intégré ce code dans un autre projet.
Merci d'avance pour votre aide

Bricoltou
 

Pièces jointes

  • Bricoltou-1.xlsm
    26.2 KB · Affichages: 19

jpb388

XLDnaute Accro
Re : automatisation d'un USF

Bonsoir à tous
j'ai mis les explications comme je pouvais
mais si tu en as besoin d'autre n'hésite pas
 

Pièces jointes

  • Bricoltou.xlsm
    29.2 KB · Affichages: 27
  • Bricoltou.xlsm
    29.2 KB · Affichages: 28
  • Bricoltou.xlsm
    29.2 KB · Affichages: 29

Bricoltou

XLDnaute Occasionnel
Re : automatisation d'un USF

Bonsoir JPB388,le Forum

Merci pour ton aide ,je dois modifié le code car mes données sont en colonne 140 dans mon fichier .
J'ai beau essayé mais sa ne fonctionne pas .
Peux tu modifier le code STP ?
Ci joint le nouveau fichier

Bricoltou
 

Pièces jointes

  • BricoltouV2.xlsm
    28 KB · Affichages: 22

jpb388

XLDnaute Accro
Re : automatisation d'un USF

re

je te l'envoi comme cela pour que tu puisses comparer les changements je souhaitais te les mettre en rouge mais a priori on ne peut pas

Code:
Private Sub C1_Change()
Dim Couleur&, Compteur&
C2.Clear 'efface la combobox
T1 = "" ' efface la textbox
C3.ListIndex = -1 ' enlève le texte
T2 = "" ' efface la textbox
Couleur = Feuil1.Cells(C1.ListIndex + 2, 140.Font.Color ' couleur de référence
Compteur = 2
Do ' boucle sur la colonne b
      ' si couleur= à la couleur de la cellule  on a ajoute le texte de la cellule à la liste déroulante
      If Couleur = Feuil1.Cells(Compteur, 141).Font.Color Then C2.AddItem Feuil1.Cells(Compteur, 141).Value
      Compteur = Compteur + 1
Loop Until Feuil1.Cells(Compteur, 141) = "" ' si plus de donnée on quitte la boucle
End Sub

Private Sub C2_Change()
Dim Couleur&, Compteur&
C3.ListIndex = -1 ' enlève le texte
T2 = "" ' efface la textbox
Couleur = Feuil1.Cells(C1.ListIndex + 2, 140).Font.Color ' couleur de référence
Compteur = 1
Do
      Compteur = Compteur + 1
Loop Until Feuil1.Cells(Compteur, 141).Font.Color = Couleur ' if couleur=cellule on suitte la boucle
T1 = Feuil1.Cells(C2.ListIndex + Compteur, 142).Value
End Sub


Private Sub C3_Change()
Dim Col, Cel As Range
If C3.ListIndex = -1 Then Exit Sub
' recherche de la colonne pour t2
For Each Cel In Feuil1.Range(Feuil1.Cells(1, 144), Feuil1.Cells(1, Feuil1.Cells(1, Columns.Count).End(xlToLeft).Column))
      If Cel.Value = C2.Value Then Col = Cel.Column: Exit For
Next Cel
'  les items d'une liste commence à 0 donc on ajoute 2 (un pour la liste, un pour les entêtes)
T2 = Feuil1.Cells(C3.ListIndex + 2, Col)
End Sub

Private Sub UserForm_Initialize()
    Dim i&, aa, n
    aa = Feuil1.Range("EJ2:EJ" & Feuil1.Range("EJ" & Rows.Count).End(xlUp).Row)
    C1.List = aa
    aa = Feuil1.Range("EM2:EM" & Feuil1.Range("EM" & Rows.Count).End(xlUp).Row)
    C3.List = aa
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 860
Membres
103 978
dernier inscrit
bderradji