Besoin d'experts pour BD et formulaires sous Excel

moustic54

XLDnaute Occasionnel
Bonjour, je dois mettre en place un suivi de contrats lié à la fois au poste occupé et au signataire sous Excel.
Ces contrats peuvent être modifiés en cours d'année (redefinition d'objectifs) ou encore changement de personnes (mise en place d'un historique)
J'ai essayé de travailler en BD et useform en specifiant sur un onglet les différents elements (memo) qui seront utiles à l'automatisation de la saisie ou des recherches (exemples des departement qui une fois saisis ne devraient faire apparaitre que les villes de celui-ci puis la zone)
Je dois aussi conserver les informations des différentes lignes de la BD avant modifications (historique)

J'ai bien essayé de mettre en place les formulaires, la BD ... :(
J'ai lu les differents post et ils sont nb sur le sujet mais je ne réussis pas à l'appliquer à mon fichier malgré les heures passées.

Si les experts qui oeuvrent ici pouvaient m'aider à avancer ce projet ou me dirent si l'option choisie est ou pas la bonne !!!

Merci d'avance


le fichier est disponible ici : Free - Envoyez vos documents
 

Bebere

XLDnaute Barbatruc
Re : Besoin d'experts pour BD et formulaires sous Excel

bonsoir julie,Moustic
le code comme suit est ok
Private Sub ComboBox1_Change()
Dim Cel As Range, Rng As Range

If ComboBox1.ListIndex = -1 Then Exit Sub

TextBox6 = ""

With Worksheets("bd")
TextBox6 = Application.WorksheetFunction.CountIf(.Range("B2:B" & .Range("b65536").End(xlUp).Row), "=" & ComboBox1)
End With

' If OptionButton3 Then 'ajout
With Worksheets("memo")
Set Rng = .Range("A2:A" & .Range("A65536").End(xlUp).Row) 'dep
End With

With ComboBox2
.Clear
For Each Cel In Rng
If Cel = ComboBox1 Then .AddItem Cel.Offset(0, 1) 'ville
Next Cel
End With
' End If

End Sub
dans
Private Sub ComboBox7_Change()
tu changes la ligne qui commence par lblCompteur.Caption = par celle çi
lblCompteur.Caption = ComboBox7.ListIndex + 2 & "/" & ComboBox7.ListCount
à bientôt
 

moustic54

XLDnaute Occasionnel
Re : Besoin d'experts pour BD et formulaires sous Excel

Bonsoir Bebere, Julie

Pour répondre à ta question, Bebere, textbox ref est rempli manuellement (il est impossible de les connaitre avant leur publication officielle)
J'ai vu les modifications que tu as faites sur le fichier.
Cà fonctionne SUPER sauf lors de l'ajout et modif. où l'on peut saisir n'importe quoi dans les ComboBox.
Ne peut-on pas limiter le choix à la liste associée aux comboBox pour les utilisateurs distraits ?

Merci pour ton aide c'est vraiment Extra et tres sympa de ta part.

Bon we
 

moustic54

XLDnaute Occasionnel
Re : Besoin d'experts pour BD et formulaires sous Excel

Re bonsoir Bebere

J'ai un nombre de questions posées dans l'onglet portant le même nom.:eek:
Je remets donc le fichier modifié.

(c) CJoint.com, 2007

Merci encore pour ton aide.
Trés bonne soirée
 

Julie-F

XLDnaute Occasionnel
Re : Besoin d'experts pour BD et formulaires sous Excel

Bonjour Moustic, Bebere

Attention dans l'usf poste, lorsque tu es en modification le n° du département se remet à blanc ce qui provoque un message d'erreur.
Impossible de fermer le fichier correctement.

A bientôt
 

moustic54

XLDnaute Occasionnel
Re : Besoin d'experts pour BD et formulaires sous Excel

Bonsoir Julie, Bebere

Bebere, j'ai regardé assez vite le fichier joint.
Mais déjà une question : Pourquoi lorsque l'on se trouve en ajout que ce soit sur l'un ou l'autre des usf ne pas avoir garder le principe de l'incrementation du n° automatique comme c'était le cas dans le version 4 pour l'usf Poste (cf. doc joint) ?
Je trouvais que ce choix était préférable puisqu'il évite toute intervention de l'utilisateur.
Ton avis sur le sujet est-il différent ? Y a-t-il une difficulté liée au code ?

(c) CJoint.com, 2007
 

Bebere

XLDnaute Barbatruc
Re : Besoin d'experts pour BD et formulaires sous Excel

bonjour Moustic
dans usf contrat le N° contrat s'incrémente via usfcontrat,tu veux autrement tu le dis
je pose la question dans question
une fausse manoeuvre de ma part!
pour usfposte
Private Sub CommandButton1_Click() 'ajout
Dim N As Integer

ModeUsf "A"
N = Right(ComboBox7.List(ComboBox7.ListCount - 1), 4)
ComboBox7.AddItem "POST/" & Left("0000", Len("0000") - Len(CStr(ComboBox7.ListCount + 1))) & N + 1
ComboBox7.ListIndex = ComboBox7.ListCount - 1
lblCompteur.Caption = "Poste n° " & ComboBox7.ListIndex + 1 & "/" & ComboBox7.ListCount
Label86.Caption = "Nouvelle entrée dans feuille bd,ligne " & ComboBox7.ListIndex + 2

End Sub

à bientôt
 

moustic54

XLDnaute Occasionnel
Re : Besoin d'experts pour BD et formulaires sous Excel

bonjour Moustic
dans usf contrat le N° contrat s'incrémente via usfcontrat,tu veux autrement tu le dis
je pose la question dans question
une fausse manoeuvre de ma part!
pour usfposte
Private Sub CommandButton1_Click() 'ajout
Dim N As Integer

ModeUsf "A"
N = Right(ComboBox7.List(ComboBox7.ListCount - 1), 4)
ComboBox7.AddItem "POST/" & Left("0000", Len("0000") - Len(CStr(ComboBox7.ListCount + 1))) & N + 1
ComboBox7.ListIndex = ComboBox7.ListCount - 1
lblCompteur.Caption = "Poste n° " & ComboBox7.ListIndex + 1 & "/" & ComboBox7.ListCount
Label86.Caption = "Nouvelle entrée dans feuille bd,ligne " & ComboBox7.ListIndex + 2

End Sub

à bientôt

Bonjour Bebere

Merci pour ta réponse. J'ai bien lu la question que tu me posais sur fichier joint à laquelle je n'ai pas répondu. Je voulais avant de le faire tester le fichier.
Pour usfposte il faudrait rendre la zone du n° non modifiable dans tous les cas. Or même avec ton nouveau code lorsque tu es en ajout, on a droit à un menu déroulant.
Dois-je changer le combobox pour une zone texte ?

Merci en tout cas pour ton aide. Bonne journée à toi.
 

moustic54

XLDnaute Occasionnel
Re : Besoin d'experts pour BD et formulaires sous Excel

Bonsoir Bebere

Chapeau bas, extra les modifications que tu as faites !!
Je t'ai répondu dans l'onglet questions auxquelles j'ai ajouté de nouvelles questions mais si çà t'ennuie je comprendrai.

(c) CJoint.com, 2007

Je te redis à nouveau un grand merci.

A bientôt
 

Julie-F

XLDnaute Occasionnel
Re : Besoin d'experts pour BD et formulaires sous Excel

Bonjour Moustic, Bebere

Je lis régulierement ce post fort interessant.

A titre perso, Moustic pourrais-tu me dire si tu es parvenu à supprimer les chiffres qui apparaissent à coté des villes ? Je n'y suis parvenue.

Autre question mais là dans le cadre du developpement de ton application.
N'est-il pas mieux de mettre le n° de contrat sous la forme CONT/001 puis CONT/001-A des que le contrat est modifié par un changement de titulaire.
Je pense que tout changement de personne sur un contrat necessite la réalisation d'un nouveau contrat et non une modification.

A +
 

Bebere

XLDnaute Barbatruc
Re : Besoin d'experts pour BD et formulaires sous Excel

bonjour Julie, Moustic
pas beaucoup de temps pour le moment mais je continue à améliorer et compléter le code
pour le chiffre(index ligne dans memo pour zone), tu mets columnswidhts à 0( dans le code)
oui Julie pour les contrats,il faudra changer puisque Moustic dis qu'il peut y en avoir plusieurs sur le même n° poste. il devrait nous expliquer comment il voit la chose.J'améliore et ou complète ce qui est fait,avant de continuer
à bientôt
 
C

Compte Supprimé 979

Guest
Re : Besoin d'experts pour BD et formulaires sous Excel

Bonsoir à tous,

Très, très beau boulot ;)

Pour la question de la suppression, tu peux utilise ce code
Code:
Private Sub CommandButton3_Click()    'supprim
  ' ATTENTION
  ' Les variables de type Integer sont stockées sous la forme de nombres de 16 bits (2 octets)
  'dont la valeur est comprise entre -32 768 et 32 767
   Dim VarReponse As String 'L as long
   Dim L As Long
   Dim Poste As String
   L = ComboBox7.ListIndex + 2
   Poste = Worksheets("bd").Cells(L, 1)
        VarReponse = MsgBox("Effacer le poste n° " & Poste, vbYesNo, "Alerte")
        If VarReponse = vbNo Then GoTo Fin:
With Worksheets("bd")
[COLOR=blue]Dim NextLig As Long[/COLOR]
[COLOR=blue]NextLig = Sheets("Modifications").Range("B" & Rows.Count).End(xlUp).Row + 1[/COLOR]
[COLOR=blue]' Copier la ligne dans modifications avant[/COLOR]
[COLOR=blue].Range("A" & L & ":BX" & L).Copy destination:=Sheets("Modifications").Range("B" & NextLig)[/COLOR]
[COLOR=blue]Sheets("Modifications").Range("A" & NextLig).Value = Now()[/COLOR]
[COLOR=blue]Sheets("Modifications").Rows(NextLig).Interior.ColorIndex = 3[/COLOR]
  ' On peut supprimer la ligne
  .Rows(L).EntireRow.Delete Shift:=xlShiftUp
End With
Fin:
  ModeUsf "C"
End Sub

A tester, chez moi j'ai un souci avec : Set MonDico = CreateObject("Scripting.Dictionary") :(

Nota : la variable "L" pour les lignes à été défini comme : As Integer
C'est une erreur !

Les variables de type Integer sont stockées sous la forme de nombres de 16 bits (2 octets)
dont la valeur est comprise entre -32 768 et 32 767

Comme sur 2003 il y a 65536 lignes, ça va buguer ;)

Solution : Dim L As Long

A+
 
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 076
Membres
103 111
dernier inscrit
Eric68350