Utilisation de listindex [Résolu/Fermé]

Signaler
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
-
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
-
Bonjour,

j'ai une combobox contenant une 10aine d'éléments
en fonction de chaque élément je complète une textbox différente
la valeur de cette textbox étant placée dans une cellule d'une colonne différente
je ne voudrais pas répéter une 10aine de fois if ... then ... ci-dessous
et je pense que la combobox.listindex serait toute indiquée
mais je ne sais pas comment procéder pour la metttre en place
Pourriez vous m'aider merci
exemple la valeur "dépenses fonctionnement" sera toujours dans la colonne D cellule d2 ou d3 etc....

If ComboBox3.Value = "Dépenses fonctionnement" Then
Sheets("Journal").Range("D" & DernLigne).Value = TextBox7.Value
End If


25 réponses

Bonjour
voila un nouveau un fichier
http://www.cjoint.com/c/FAxnNzc6rWh
A+
Maurice
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 474
Bonjour,

je pense que la combobox.listindex serait toute indiquée
Cette propriété du combobox te donnes la position de l'élément sélectionné, le premier étant zéro.
Tu peux aussi l'utiliser pour choisir ta textbox mais je n'ai pas nécessairement tout compris dans ton explication. Cela peut donner
Sheets("Journal").Cells(DernLigne, ComboBox3.listindex + 1 ).Value = Me.Controls("TextBox" & ComboBox3.listindex + 1).Value
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
Bonjour gbinforme
en fait chaque élément de ma combobox correspond à une colonne de ma feuille excel et chaque fois que je compléte ma textbox après avoir sélectionnée mon élément la valeur de ma textbox s'inscrit dans la cellule
correspondant à la colonne concernée.
exemple l'élément "dépenses fonctionnement" correspond à la colonne D lorsque je sélectionne cet élément et complète ma textbox la valeur de cette textbox va s'inscrire dans la cellule D3 dernière cellule blanche
l'élément "dépenses fourniture" correspond à la colonne B de ma feuille la valeur de ma textbox va s'inscrire dans B4
est ce un peu plus clair ??

merci
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2 >
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020

désolé gbinforme mais ça ne marche pas
je voudrais que la valeur de l'élément sélectionné dans la combobox (textbox7.value) s'inscrive à droite des données des cellules A B C de ma dernière ligne dans la cellule correspondante qui pourra être la cellule D E F ... en fonction de l'index de la combobox
ces cellules étant obligatoiremen vides

merci pour ta patience
il n'y a pas longtemps que je pratique VBA ceci explique cela
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 474
Bonsoir,

désolé mais ça ne marche pas
Eh bien me voilà bien avancé !
Si tu ne précises pas ce qui ne fonctionne pas à tes yeux, tu vas avoir énormément de mal à obtenir de l'aide car l'on passe beaucoup de temps à vérifier ce que l'on propose et lorsque l'on prend un "çà marche pas" sec dans les dents, ce n'est pas du meilleur effet.

Comme dit un de mes collègues : "Une question bien formulée c’est 100% de la solution"

Si la colonne A est toujours alimentée, cela veut dire que tu ne te sert pas du combo pour la remplir ?
Dans ce cas, il suffit de prendre la ligne de A
If ComboBox3.listindex >0 then
Sheets("Journal").Cells(Cells(Rows.Count, "A" ).End(xlUp).Row , ComboBox3.listindex + 1 ).Value = TextBox7.Value 

il n'y a pas longtemps que je pratique VBA
ces cellules étant obligatoiremen vides


Cela induit aussi que tu interdit toute modification des cellules : si tu fais une faute de frappe c'est à perpétuité ? Je pense qu'il va te falloir approfondir l'analyse des besoins.
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2 >
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

bonjour gbinforme
je te présente toutes mes excuses les plus sincères pour ma maladresse

"Une question bien formulée c’est 100% de la solution" tout à fai d'accord avec toi
et cest bien là mon problème
les colonnes A B et C sont alimentées par des textboxes
les colonnes D ou E ou F ou G ou H sont alimentés en fonction de l'élément sélectioné dans la combobox
ex
j'alimente la ligne a5 b5 d5 avec les textboxes correspondantes ensuite je sélectionne
l'élément "dépenses pour manif" dans la combobox et la valeur de cette combobox qui se trouve sur dans textbox7 sera répercutée dans la colonne E5 intitulée manif

est ce plus clair ainsi

je me répète : je suis vraiment désolé de t'avoir blessé
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 474
Bonjour,

est ce plus clair ainsi
Plus confus tu veux dire ?
- Au début tu avais une dizaine d'éléments, maintenant tu en as 5.
- les colonnes D... puis sera répercutée dans la colonne E

Comment veux-tu que l'on tombe sur la bonne colonne pour te donner un code avec toutes ces incohérences.
"Une question bien formulée c’est 100% de la solution"
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2 >
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

bonjour gbinforme
lorsque je rentre des info dans les textboxes 3 4 et 5 elles iront toujours dans les colonnes A B C
Dans la combobox j'ai 5 éléments mais je pourrais en mettre plus
et je rajouterais autant de colonnes dans la feuille
En fonction de l'élément sélectionné dans cette combobox la valeur de cette combobox affichée dans la textbox corrspondante sera répercutée dans la colonne adéquate.
chaque intitulé de colonne correspond à un élément de la combobox

ce que je fais parfaitement avec
If ComboBox3.Value = "Dépenses fonctionnement" Then
Sheets("Journal").Range("D" & DernLigne).Value = TextBox7.Value
End If

mais je dois répéter autant de fois cette condition qu'il y a d'élément dans la combobox

ma question était donc : y a t il un moyen d'éviter cela ?

c'est tout ......
Bonjour

je pense a un truc comme ca
Private Sub CommandButton2_Click()
'4 = Index 0
'5 = Index 1
'7 = Index 2
NumCol = Array(4, 5, 7)
DernLigne = Cells.Find("*", , , , , xlPrevious).Row + 1
   With Sheets("Journal")
      .Range("A" & DernLigne).Value = TextBox3.Value
      .Range("B" & DernLigne).Value = TextBox4.Value
      .Range("C" & DernLigne).Value = TextBox5.Value
      .Cells(DernLigne, NumCol(ComboBox3.ListIndex)) = TextBox7.Value
   End With
End Sub

pour la suite sans ton fichier on ne peux rien faire
A+
Maurice
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
Bonjour Maurice

Voici le lien pour accéder à mon fichier
qui n'est qu'une ébauche

http://www.cjoint.com/c/FAwjYktVQ1b

merci
Bonjour
ou se trouve l'onglet "Journal"
dans onglet "var" mettre dans la colonne G les numéro de colonne

A+
Maurice
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
Maurice c'est journaldépense au lieu de journal
j'ai mis les numéros de colonnes à la place des textbox

https://www.cjoint.com/c/FAwow0qsSjb

merci
Bonjour
tes numéro sont pas bon tu a un problème de structure
ou alors j'ais rien compris

http://www.cjoint.com/c/FAwppNYBGRY

A+
Maurice
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
Bonsoir Maurice
Qu'entends tu par numéro de colonne ?
est ce 1 pour la colonne A
2 pour la colonne B
etc .....
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
Bon jour Maurice j'ai bien ta notification du 23 me
disant que j'avais un nouveau fichier

http://www.cjoint.com/c/FAxnNzc6rWh

mais je n'arrive pas à y accéder
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
ca y est maintenant
en t'envoyant l info et en y ajoutant le lien
celuici passe en bleu et je peux y accéder

je dois partir maintenant
je te tien informé de la suite ce soir

merci
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2 >
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020

Maurice
j'ai maintenant un autre problème
lorsque j' ouvre ton fichier
et lance l'application j'ai le message d'erreur suivant

Impossible charger le objet car il n'est pas disponible sur cette machine

je peux visualiser le code
il y a une flêche bleue au niveau de tex=array(10, 9)
et elle ne va pas plus loin

j'utilise excel 2007 win8.1 64bits

quel objet serait manquant ?

je n'ai pas d'autre PC pour essayer

merci
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
Bonsoir Maurice,

J'ai contourné le problème de "impossible de charger l'objet ...."
en décochant les lignes maquées "manquants" dans référence
et en rendant inactif DTPicker1
ce qui m'a permis d visualiser ton code

j'ai juste apporté un petit réajustement au niveau des numéros de colonnes
dans la feuille "var"

Tout est impec
je vais pouvoir poursuivre ..

Quand vous aurez le temps (toi, gbinform ou quelqu'un d'autre) pourrez vous m'indiquer comment résoudre ce problème d'objet manquant

merci beaucoup pour votre aide
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Juste au passage, sans savoir où et comment vous lancez l’application, il est impossible de vous aider concernant l’objet manquant...!
Vous dites :
"impossible de charger l'objet ...."
en décochant les lignes maquées "manquants" dans référence
et en rendant inactif DTPicker1

Eh bien il y a un texte qui précise ce qui manque…. !
Donc vous cherchez dans la suite de la liste la ligne qui correspond et vous la cochez.



Salutations.
Le Pingou
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
Bonjour lePingou

"impossible charger le objet car il n'est pas disponible sur cette machine"


manquant : Microsoft windows common controls 60 (sp6)

manquant : Microsoft wind0ws common controls 60 (sp6)
chemin d'accès c:\WINDOWS\systems32\MSCOMCTL.OCX

et coché également
manquant : Microsoft windows common controls-2 60 (sp6)


j'ai trouvé ces fichiers mscomctl.ocx dans systems32
dans le répertoire systems32 dossiers:\dossier.ocx

j'ai regardé dans sysWOW64 et n'ai rien trouvé

"Donc vous cherchez dans la suite de la liste la ligne qui correspond "
je n'ai pas trouvé de DTPicker dans la suite de la liste

c'est pour cela que j'avais rendu DTPicker inactif dans la procédure
supposant que c'était cet objet qui était manquant
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Je continue sur ce poste.
Avez-vous coché les 2 références Oui / Non. ?
Si Oui alors au lancement de votre application que recevez-vous comme erreur… ?

Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Petit complément : vous ouvrez votre formulaire [Essai Compta] en mode création ensuite afficher la [Boite à outils] et clic droit et clic sur [Contrôles supplémentaires].
Dans la liste vous cherchez : Microsoft Date and Time Picker Control 6.0… le cocher et terminer par OK.

Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
Bonsoir Le Pingou
j'avais déjà fait ce que vous préconisez dans le petit complément.
j'avais les deux lignes que vous avez entourées de rouge, cochées et débutant
par "manquant:"
me doutant que mon problème pouvait venir de l'objet dtpicker
j'ai regardé si microsoft Date et time picker control figurait dans les controls supplémentaires pour éventuellement l'activer. je n'ai rien trouvé.
j'ai décoché les deux lignes et désactivé ce qui se rapportait au dtpicker dans Essai Compta : je n'avais plus de message d'erreur

Ensuite j'ai cherché dans Windows les fichiers correspondant à mscomctl.ocx

j'ai trouvé ces fichiers mscomctl.ocx dans le répertoire systems32 dossiers:\dossier.ocx

j'ai regardé aussi dans sysWOW64 et n'ai rien trouvé

voila où j'en suis
bonjour

Pour le dtpicker if faut ocx (mscomct2.ocx)
et a mettre dans c:\windows\systems32
et mscomctl.ocx ses pour faire les Listview

A+
Maurice
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Essayez de le réaliser selon ce lien : https://support.microsoft.com/fr-fr/help/2676583

Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
me revoilà
j'ai cliqué sur votre lien
mais il est relatif à excel 2010
j'ai excel 2007 et apparemment pas les mêmes commandes
j'ai pu modifier le contrôle de compte utilisateur mais je n'ai pas pu allé plus
loin
je suis sous win 8.1 64 bits
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
le fichier MSCOMCT2.OCX se trouve dans le dossier Dossier.ocx

C:\Windows\System32\Dossier .ocx
Messages postés
10191
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 juillet 2021
1 166
Bonjour,
Oui c’est 2010 mais la procédure est identique pour l’essentielle.
Cependant je vous précise que le fichier MSCOMCT2.OCX doit se trouver impérativement dans le répertoire c:\windows\systems32\ soit : c:\windows\systems32\mscomct2.ocx.

Je vous propose cette autre procédure :
Placer le fichier MSCOMCT2.OCX dans le répertoire C:\windows\System32
puis utilisez le menu Démarrer/Exécuter.
Saisissez ou collez: regsvr32 c:\windows\System32\MSCOMCT2.OCX
Cliquez sur le bouton Ok.