Aide à la programmation

zeltron24

XLDnaute Impliqué
Bonjour à toutes et tous,

J'ai trouvé sur ce Forum un petit fichier de jp14 que je remercie par avance.
Je l'ai transformé pour mes besoins mais je bloque sur le code pour le Formulaire "FrmListe"
Je demande donc "à genoux", si je ne pourrais pas bénéficié de votre aide.
J'ai fais une description dans le classeur ci joint afin d’être au plus précis sur ma demande.
J'en conviens que ce sera un travail assez fastidieux, mais pour moi, je bloque.
J'ai réalisé le formulaire d'inscription de contacts mais je n'arrive pas pour celui de la listview.
Merci beaucoup pour votre participation.
zeltron24
 

Pièces jointes

  • Classeur1.xls
    239.5 KB · Affichages: 58
  • Classeur1.xls
    239.5 KB · Affichages: 74
  • Classeur1.xls
    239.5 KB · Affichages: 70

zeltron24

XLDnaute Impliqué
Re : Aide à la programmation

bonjour à toutes et à tous et à Dranreb en particulier.
J'ai installé msconctl.ocx et excel se plante.
J'ai le message suivant "Mémoire insuffisante et une fenêtre du type suivant (Voir fichier joint.)
Comment remédier à ce problème.
Merci pour votre aide.
 

Pièces jointes

  • Capture3.JPG
    Capture3.JPG
    22.2 KB · Affichages: 59
  • Capture3.JPG
    Capture3.JPG
    22.2 KB · Affichages: 58
  • Capture3.JPG
    Capture3.JPG
    22.2 KB · Affichages: 60

Dranreb

XLDnaute Barbatruc
Re : Aide à la programmation

Bonjour.
Je ne sais pas, mais ce ne serait vraiment pas la 1ère fois que les ListView poseraient des problèmes de portabilité.
Lorsque vous dites que vous l'avez installé, vous voulez dire que vous n'aviez pas la "Microsoft Windows Common Controls 6.0 (SP4)" parmi les références disponibles, et que vous avez récupéré l'ocx de quelque part ? Ça ne suffit surement pas alors. Encore faut-t-il l'enregistrer dans la base de registre. Mais franchement, je ne suis pas calé de tout dans les problèmes d'installations, je ne pourrai pas vous aider.
Je vous conseille en attendant de partir plutôt sur une ListBox. Ça posera moins de problème.
 

zeltron24

XLDnaute Impliqué
Re : Aide à la programmation

Bonjour Dranreb
j'avais une version plus ancienne du fichier et j'ai installé la plus récente. Depuis je ne peux plus ouvrir un classeur excel sans avoir ce problème.
Je cherche sur le net une solution mais pour l'instant sans succès.
Merci pour ton aide
Bonne journée je te tiens au courant qui c'est cela pourra peut etre utile à quelqu'un.
 

zeltron24

XLDnaute Impliqué
Re : Aide à la programmation

Re,

Après plusieurs heures de recherche et de "Solutions" plus ou moins bonne trouvées sur le net, j'ai toujours ce fichu message qui vient à l'ouverture de mon classeur.
J'ai réinstallé Office, J'ai supprimé les Frm contenant des listView bref, je suis à bout d'arguments.
Si on pourrait m'aider, je vous en remercie d'avance.
 

Bebere

XLDnaute Barbatruc
Re : Aide à la programmation

bonjour Zeltron,Dranreb
Zeltron,tu peux essayer ce qui suit(trouvé içi)
1) Télécharcher le fichier MSCOMCTL.OCX ici par exemple.

2) Extraire le fichier dans un dossier

3) Couper et collez-le dans C:\Windows\System32

4) Menu démarrer -> Click-droit sur "Invité de commande" -> "Exécuter en tant qu'administrateur"

5) Dans la fenêtre noire, saisissez cd c:\windows\system32 puis Enter

6) Puis saisissez regsvr32 mscomctl.ocx puis Enter

Ici petit message comme quoi c'est réussi...

7) Petit redémarrage du pc (pas sûr mais moi je l'ai fait)

tu peux aussi m'envoyer ton fichier pour savoir ce qui se passe
 

zeltron24

XLDnaute Impliqué
Re : Aide à la programmation

Bonsoir Bebere, Dranreb,

J'ai effectivement vu cette solution qui hélas ne fonctionne pas chez moi, alors j'ai supprimé tous mes ListView que j'avais dans mes classeurs (PERSO.XLS et les autres et je suis occupé à créer des ListBox. le problème maintenant c'est que je n'arrive pas à trouver le code pour le fichier que je vous ai joint Alors, je galère dur. Si vous pourriez me donner un petit coup de pouce cela me ferais très plaisir et je gagnerait en temps. Le principe étant le même qu'avec la ListView j'ai réussi à charger ma listbox mais impossible de mettre dans mes txtBox la ligne que je sélectionne pour modifier.
Voici le code simple que j'ai mis :

Sub UserForm_initialize()
Sheets("Contacts").Select
ListBox1.RowSource = "A3:K50"
FrmListContacts.Show
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Aide à la programmation

De toute façon pour ma part je préfère toujours reprendre les informations de leur source.
Et c'est facile avec ComboBoxLiés, car il vous communique automatiquement une liste des numéros de lignes dans la plage source correspondant aux choix effectués. C'est avec cette liste que vous devez prendre les bonnes lignes pour garnir la (désormais) ListBox, et son ListIndex augmenté de 1 vous donnera celle à y reprendre pour l'envoyer dans les TextBox.
C'est la clé de la simplicité et de la performance: d'un bout à l'autre de la chaine ne jamais perdre de vue les numéros de lignes.
Je parle ici de numéros de lignes relatifs, valant 1 pour celle du début de la plage, pas des numéros de lignes dans la feuille.
Enfin pour ce qui est de la performance, ce n'est que la 2ième clé. La 1ère c'est de travailler avec des tableaux de Variant et non directement avec les cellules.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Aide à la programmation

Bonjour.
Voici:
Oui, mais vous devriez harmoniser vos noms de contrôles. Je l'ai fait pour les ComboBox sinon je ne m'en sortait pas sans m'énerver. Sur 3 boutons l'un s'appelle BT_MOD_INI, l'autre Ajout_Intervention et le dernier BtnFermer (tiens on dirait qu'il est de moi celui là). Pour les TextBox, ça va, c'est pratique ça permet de les alimenter par une boucle.
VB:
Option Explicit
Dim WithEvents CBL As ComboBoxLiés ' Déclaration avec évènements d'un objet de type ComboBoxLiés.
Rem. Sélectionnez votre objet CBL dans la liste de gauche au dessus de la fenêtre de code.
'    Liste de droite: voir explications des modèles de procédures implantables en face des
'    instructions Event situées en tête du module ComboBoxLiés.
Dim TLgn() As Long ' Table des numéros de lignes chargés dans la ListBox1 (mais commence à l'indice 1)
Dim LCou As Long ' Numéro de la ligne courante à mettre à jour (sélectionnée dans la ListBox1)

Private Sub Userform_Initialize()
Set CBL = New ComboBoxLiés ' Allocation de nouvelles ressources de mémoire à l'objet.
CBL.Plage FContact.[A3] ' Prend en fait toutes les lignes utilisées à partir de là. Définit CBL.PlgTablo
CBL.Add Me.CbxNom, "B"
CBL.Add Me.CbxPrénom, "C"
CBL.Add Me.CbxProfession, "D"
CBL.Add Me.CbxCP, "G"
CBL.Add Me.CbxVille, "H"
CBL.CorrespRequise = True
CBL.Actualiser
End Sub

Private Sub BtnEffacer_Click()
CBL.Nettoyer ' C'est une procédure Public dans le module de classe du nom de son type.
'              Et du coup, pour ne pas répéter cette définition, ça s'appelle une méthode.
Rem. Pareil:   Une variable déclarée Public dans le module de classe du nom de son type
'              telle que CBL.PlgTablo s'appelle une propriété en lecture/écriture.
End Sub

Private Sub BT_MOD_INI_Click()
CBL.Nettoyer
End Sub

Private Sub CBL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long) ' 1er évènement principal.
ListBox1.Clear
LCou = 0
If NbrLgn = 0 Then ReDim TLgn(0 To 0)
End Sub

Private Sub CBL_Résultat(Lignes() As Long) ' 2ième évènement principal.
Dim T(), N As Long, L As Long, C As Long
TLgn = Lignes
T = CBL.PlgTablo.Resize(, 11).Value
For N = 1 To UBound(TLgn)
   L = TLgn(N)
   ListBox1.AddItem
   For C = 2 To 11: ListBox1.List(N - 1, C - 2) = T(L, C): Next C
   Next N
End Sub

Private Sub ListBox1_Click()
Dim T(), C As Long
LCou = TLgn(ListBox1.ListIndex + 1) ' (La ListIndex commence à l'indice 0)
T = CBL.PlgTablo.Rows(LCou).Resize(, 11).Value
For C = 2 To 11: Me.Controls("TextBox" & C).Text = T(1, C): Next C
End Sub

Private Sub Ajout_Intervention_Click()
Dim T(), C As Long
If LCou = 0 Then
   LCou = CBL.PlgTablo.Rows.Count
   With CBL.PlgTablo.Rows(LCou): .Copy: .Insert: End With
   ReDim T(1 To 1, 1 To 11): T(1, 1) = CBL.PlgTablo(LCou, 1) + 1
   LCou = LCou + 1
Else
   T = CBL.PlgTablo.Rows(LCou).Resize(, 11).Value: End If
For C = 2 To 11: T(1, C) = Me.Controls("TextBox" & C).Text: Next C
CBL.PlgTablo.Rows(LCou).Resize(, 11).Value = T
CBL.Actualiser
End Sub

Private Sub BtnFermer_Click()
Unload Me
End Sub
 

zeltron24

XLDnaute Impliqué
Re : Aide à la programmation

Bonjour Dranreb,
J'espère que je ne vous ennui pas trop avec mes problèmes en tout les cas un grand merci pour votre aide.
Bien vu, il y a des sections que j'ai copié sur des classeurs trouvés sur le forum.
Je mets tout cela en pratique et vous tiens au courant.
 

zeltron24

XLDnaute Impliqué
Re : Aide à la programmation

Bonjour Bebere
J'ai toujours ce problème de ClassFactory lorsque j'ouvre ton classeur.
Je remets en ligne mon classeur avec le code de Dranreb mais rien ne va.
Je suis complètement perdu.
De plus la première instruction bloque.
Dim WithEvents CBL As ComboBoxLiés
 

Pièces jointes

  • Classeur1.xls
    175.5 KB · Affichages: 35
  • Classeur1.xls
    175.5 KB · Affichages: 31
  • Classeur1.xls
    175.5 KB · Affichages: 36

Dranreb

XLDnaute Barbatruc
Re : Aide à la programmation

Il manque tous les modules de service joints au #10.
Maintenant que vous avez éliminé les ListView de vos Perso.xls, peut être pourrez vous ouvrir le CbxLiésDennnisss.xls sans faire planter Excel ? Ce sera alors plus facile de trainer avec la souris ces modules vers votre projet VBA.
 

Discussions similaires

Statistiques des forums

Discussions
312 565
Messages
2 089 729
Membres
104 266
dernier inscrit
christian Auletta