Code a modifier suite a réduction nombre de feuilles

Bonjour a vous

J’ai le fichier joint qui fonctionnait avec 8 pages, mais depuis j'ai mis tous les articles dans une feuille appelée base, j’ai bien essayé une modification qui est à demi correct mais il y a un bug

erreur d'exécution 35600 : index out of bound et incrimine la ligne

Me("TextBox" & i) = .SelectedItem.ListSubItems(i - 1)

lors du clic sur listview

je fonctionne avec office 2010 et windows8 64 bits

lorsque cela fonctionnera

  • comment activer le bouton "enregister les modifications " sur la feuille quand quelque chose a été modifié dans les textbox
  • activer les autres boutons aussi si possible

je joins le fichier modifier

Pascal

bonsoir ,

pour résoudre to problème d'erreur 35600. IL semble que dans certains cas, il n'y ait pas , dans listsubtems, 12 valeurs comme tu t'y attends (je te laisse comprendre pourquoi).

Pour tenir compte du nombre exact de listsubitems, ta boucle doit être libellée de la façon suivante

for i=2 to .selecteditem.listsubitems.count

au lieu de

for i=2 to 12

cela corrige la faute, mais cela ne donne probablement pas résultat attendu, j'avoue que je n'ai pas essayé de comprendre ce que tu voulais faire exactement.

bonjour H2so4

si tu n'a pas ouvert le fichier joint voici le code complet du clic sur la listview

Private Sub ListView1_click()
  With ListView1
    CHOIX_ITEM = .SelectedItem.Index
    PRENOM = .SelectedItem.Text
    NOM = .SelectedItem.ListSubItems(1)
    TextBox1 = ListView1.SelectedItem
    For i = 2 To 12
      Me("TextBox" & i) = .SelectedItem.ListSubItems(i - 1)
    Next
  End With
End Sub

c'est un fichier que j'avais trouvé sur le net et modifié en fonction de mes essais, depuis mon fichier a évolué et le nombre de feuille s'est considérable réduit de 8 a 1 , il est resté l'appellation

"CHOIX_ITEM -PRENOM-NOM

qui sont restés et fonctionnait!

j'ai essayer ceci en remplacant le for...next

Frame1.TextBox1.Value = UserForm1.ListView1.SelectedItem.Text
    Frame1.TextBox2.Value = UserForm1.ListView1.SelectedItem.ListSubItems(1).Text
    Frame1.TextBox3.Value = UserForm1.ListView1.SelectedItem.ListSubItems(2).Text
    Frame1.TextBox4.Value = UserForm1.ListView1.SelectedItem.ListSubItems(5).Text
    Frame1.TextBox5.Value = UserForm1.ListView1.SelectedItem.ListSubItems(8).Text

mais ca bloque si je mets plus de lignes et puis c'est pas joli

Pascal

rebonjour h2so4

sur tes conseils j'ai revu le nb de colonnes dans la listview et cela fonctionne sans affiche des entêtes de colonnes dans les labels

mais aussi que l'affichage dans la listview scintille avant de stabiliser

je te remets le fichier tel que

Pascal

Bonsoir Grisan,

pour pouvoir continuer les corrections, je dois comprendre la logique de ce que tu veux faire sur base du code qui ne fonctionne pas. Je vais essayer de faire les corrections en fonction de ce que j'aurai compris, quand j'aurai le temps de regarder.

Bonjour

Comme h2so4 est un peu occupé je propose cette solution

bonsoir Banzai64, H2so4 et le forum

merci pour la modification je sais au vu de mes essais tu a du mettre des lignes en commentaire

mais comment faire pour modifier un article en appuyant sur le bouton et que la ligne soit modifier sur la feuille

pareil pour la suppression mais que cette suppression ne créer pas de lignes vides intermédiaires

pareil pour l'ajout, je saurai le faire pour une catégorie mais pas pour les 8

Pascal

Bonsoir

A tester sérieusement

bonsoir Banzai64

ce dernier fichier me semble parfait mais pourquoi un textbox13 bleu ainsi que 2 textbox1 et 5 ????

je regarderai mieux demain après une bonne nuit

Pascal

Bonsoir

Le TextBox13 est à virer (essai)

Les autres Textbox sont verrouillés (on ne peut les modifier) et la couleur c'est juste pour indiqué cette particularité

bonjour Banzai64

merci beaucoup c'est parfaitement ce que je voulais, maintenant il faut que l'extrapole dans un autre fichier mais quand on mets

For I = 1 To 12
    Me("TextBox" & I) = ""
  Next I

cela veux dire que ce sont les textbox de 1 à 12 qui sont activés mais si je veux les textbox de 10 a 21 il ne suffit pas de mettre

For I = 10 To 21
    Me("TextBox" & I) = ""
  Next I

car cela bug avant l'ouverture de l'usf ,dès son appel

y a t'il une solution

Pascal

Bonjour

Ne connaissant pas ton autre fichier difficile de te répondre

Il faut que les contrôles que tu utilises existent dans ton Userform

Vérifies que les Textbox 1 et 5 (ceux qui sont verrouillés) existent

Vais être absent un bonne partie de la journée

Me gène pas que quelqu'un d'autre te donne un coup de main

bonjour Baznzai64 et le forum

bon j'ai finalement réussi

Merci

Pascal

bonjour Banzai64 et le forum

je voudrais intégré la frame avec ses textbox et labels ainsi que les boutons pour les mettre dans mon fichier définitif, mais comment modifier le code des boutons pour modifier les articles dans une la feuille séparée nommé

articles

cette feuille s'ouvre avec le clic sur un bouton, ce qui me permettrait de ne modifier que l'article concernée et ne pas faire une recherche dans toutes la catégorie je vais joindre un aperçu de ce que je voudrais faire

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

si je suis assez explicit tant mieux

Pascal

Bonjour

grisan29 a écrit :

si je suis assez explicit tant mieux

Autant que lorsque tu veux faire réparer ta voiture en envoyant une photo au garagiste

bonjour Banzai64

moi qui pensais l'image parlante je te joint le fichier épuré au maximum https://www.cjoint.com/c/CHeqqmUCQ3w accompagné de sa feuille article https://www.cjoint.com/c/CHeqkitthcu qui doit être mise dans c:\Facture-test et qui s'ouvre des l'appui sur le bouton Matériel

voila si je suis plus explicit cette fois

Pascal

Bonjour

J'ai peur de comprendre

D'un truc simple tu veux faire un truc compliqué

Au lieu de chercher dans une feuille de ton fichier, tu veux chercher dans un autre fichier

Maintenant je comprends (peut-être mal) quand tu marques

grisan29 a écrit :

ce qui me permettrait de ne modifier que l'article concernée et ne pas faire une recherche dans toutes la catégorie

Mais il te faudra bien charger la catégorie et faire une recherche/clic sur l'article pour le modifier

Pour résumé tu es passé de 8 feuilles à 1 feuille et de 1 feuille à 8 fichiers

Rectifies mes propos si j'ai mal analysé la situation

bonjour Banzai64

la feuille essaiearticle que j'ai envoyer et sur la quelle j'ai greffé les textbox, label reçoivent a chaque clic sur la listview la ligne de l'article individuellement et si je désire le modifier le bouton

"modifier un article"

élargi l'usf et dévoile les textbox, label et boutons en ayant les textbox rempli de l'article concerné.

donc a partir de la, comment faire pour que les boutons modifier, supprimer, ajouter puisse effectuer leurs actions sur la feuille "article" qui s'est ouverte comme un 2ème classeur

j'ai essayer et réussi en mettant le fichier que tu as modifier version 2 dans la feuille article, mais dans la listview développe tous les articles et sur 300 en électricité cela est long et se serai plus rapide si cela était fait directement sur la l'usf"bibliothèque"

c'est mon avis

Pascal

Bonsoir

Je ne comprends rien à ce que tu marques

Le fichier dont tu parles, je ne l'ai pas ?

J'ai élargi l'usf et pas de textbox ou autres

Et en plus je n'arrive pas à comprendre que le fait de mettre la base dans un autre fichier va accélérer le processus,si 300 articles dans ta base (catégorie Électricité) donnera toujours 300 articles dans ton fichier Électricité

grisan29 a écrit :

l'usf"bibliothèque"

C'est quoi ?

Bonsoir Banzai64

méa culpa erreur de fichier (v2 au lieu de 2v) voici le bon https://www.cjoint.com/c/CHevoki7qXz

Pascal

Rechercher des sujets similaires à "code modifier suite reduction nombre feuilles"