Pb sur UserForm

Re-Bonjour,

Suite au coup de main de BrunoM45 , je me suis rendu compte d'un petit souci. Lorsque je clique sur une cellule de la colonne O, l'UserForm s'ouvre bien aucun souci. Mais lorsque je valide à nouveau, la modification vient s'ajouter en dessous de la première ligne. Ce que je voudrais c'est qu'elle vienne remplacer la première sélection. Malgré mes essais je ne parviens pas à modifier cela.

Deuxième petit souci (qui est apparu suite à l'ajout d'image), lorsque j'effectue une modification, l'UserForm plante. Et là, je dois bien avouer que j'ai aucune idée de quoi faire.

Par ailleurs, par rapport à ces images je n'arrive pas à obtenir totalement ce que je voudrais ! Suivant la sélection des Combobox elles se déplace correctement, cependant si je change la valeur des Combobox, la nouvelle image correspondante reste en dessous de l'ancienne et je ne peux de ce fait pas la voir ! Je pensais insérer un code qui la placerai au premier plan mais idem, malgré mes essais je ne parviens pas à modifier cela.

Quelqu'un aurais t'il l'amabilité de me sortir de mon impasse ?

Très cordialement, ;)

Bonsoir,

A priori, vous ne savez pas à quoi sert la déclaration de variable globale pour un module

Si l'on déclare les variables ici

image

Ce n'est pas pour les laisser après, ça ne sert strictement à rien et ça pour avantage de ne pas avoir à les répéter

image

Eh bien étant tout nouveau utilisateur du codage VBA, il y'a certaines bases que je ne maitrise pas. C'est pourquoi je m'adresse à des gens bien plus compétent que moi sur ce forum

Je vais de ce pas modifier cela ! Merci pour l'info.

Re,

Quand on vous donne un fichier, soit on utilise le dernier donné,
soit on sélectionne tout le code d'un module ou USF (CTRL+A) on le copie entièrement

Puis on remplace celui de l'autre fichier, surtout que je ne sais si vous avez bien regardé, mais votre code est indenté (plus facile à lire)

Voici le nouveau

Pas de plantage concernant l'image

A+

En utilisant le dernier que vous me transmettez ( merci pour les msgbox en plus ), si vous rentrez une configuration, puis vous ouvrez l'UserForm pour modifier, changer le combobox "Modèle" et là il plante ...

Merci pour votre aide et désolé pour les erreurs de débutant, mais c'est ce que je suis ...

Re,

Lorsque vous modifiez le modèle, les Combobox sont effacés

  For i = 2 To 5
    Me.Controls("Combobox" & i).Clear
  Next i

Donc bug ici, puisque le TextBox est vide

2022 06 05 01h42 22

Il faut donc mettre un test

Private Sub TextBox4_Change() 'Déplace une image suivant le résultat
  Dim i%
  ' Si TextBox est vide, on sort
  If Me.TextBox4.Value = "" Then Exit Sub
  ' sinon
  For i = 1 To 28
    Me.Controls("Image" & 0 + Me.TextBox4.Value).Left = 450
  Next
  On Error Resume Next
  Me.Controls("Image" & 0 + Me.TextBox4.Value).Left = 200
End Sub

D'ailleurs en parlant de ça, le contenu de votre TextBox 4 doit être un chiffre, donc inutile de le mettre entre guillemets

A+

Bonjour,

Effectivement cela fonctionne, merci beaucoup.

Par contre je n'ai pas bien saisi :

D'ailleurs en parlant de ça, le contenu de votre TextBox 4 doit être un chiffre, donc inutile de le mettre entre guillemets

J'ai essayé d'enlever les guillemets comme suit :

Private Sub TextBox4_Change() 'Déplace une image suivant le résultat
  Dim i%
  ' Si TextBox est vide, on sort
  If Me.TextBox4.Value = Then Exit Sub
  ' sinon
  For i = 1 To 28
    Me.Controls("Image" & 0 + Me.TextBox4.Value).Left = 450
  Next
  On Error Resume Next
  Me.Controls("Image" & 0 + Me.TextBox4.Value).Left = 200
End Sub

Mais du coup, ça fait une erreur ...

Re,

J'ai précédemment demandé un coup de main pour le contrôle d'image suivant le résultat d'une Combobox. le fichier s'y référent est : combo_image_1.xlsm

Aujourd'hui le fichier à évolué et ce n'est plus d'après une Combobox mais d'après une TextBox que les images sont contrôlées : combo_image_2.xlsm

Explication : Dans le premier fichier si la Combobox était égal à 1 alors l'image 1 se déplaçait vers la droite. Si la Combobox passait à 2 alors l'image 1 revenait à son point de départ et l'image 2 se déplaçait vers la droite, ainsi de suite ...

Maintenant si la valeur de la TextBox change, l'image précédente ne revient pas à son point de départ, ce qui fait que je ne peux pas voir toutes les images. J'ai essayé de repasser sur une Combobox pour voir si le problème venait du fait qu'il s'agisse d'une TextBox, mais j'ai toujours le même problème. Je suppose donc que cela vient du code ...?

4combo-image-1.zip (365.46 Ko)
7combo-image-2.zip (473.78 Ko)

Merci d'avance.

Bonjour,

Je n'ai pas trop encore analysé votre fichier mais de base je ne comprends pas pourquoi vous mettez vos images dans l'USF

C'est compliqué cela d'autant qu'en cas de mise à jour il faudra aller modifier dans l'usf....
Ce que vous devriez plutot faire, c'est créer un répertoire dans le dossier où votre fichier se trouve et y placer les images
Nommer les images en fonction de la valeur de votre textbox1
Ensuite rien de plus simple que d'appeler l'image depuis la textbox ou combobox

Cela change un peu le projet mais est nettement plus simple à gérer en cas de modification

Votre avis ?

Cordialement

Bonjour,

Je suis bien d'accord pour la simplicité mais c'est justement ce que je souhaite éviter car ce fichier à pour but d'être utilisé par plusieurs personnes sur différents postes à différents endroit. Pour certains relié par réseau continuellement, pour d'autres occasionnellement voir pas du tout.

Du coup je souhaite que le fichier Excel soit totalement autonome et ne fasse appel à aucun lien externe.

Cordialement,

Bonjour Sotin,

Je parlais de çà

 'Legrabox
  Select Case Me.TextBox3.Value
    Case Is = "LegraboxN"
      Me.TextBox4.Value = "1"

    Case Is = "LegraboxM"
      Me.TextBox4.Value = "2"
...

Ou il suffit de mettre

...
Me.TextBox4.Value = 1
...

Je vous laisse entre les mains de Dan, qui est certainement plus patient que moi

Re,

Ok pour les guillemets c'est changé.

Concernant le déplacement des images, j'ai finalement trouvé la solution pour combiner toutes les conditions ! je transmets le code pour ceux que ça pourrait intéresser. A adapter suivant l'outil directeur et le nombre d'image évidemment ;)

Private Sub TextBox4_Change()
Dim i%
For i = 1 To 19
Me.Controls("Image" & i).Left = 450
Next
On Error Resume Next
Me.Controls("Image" & 0 + Me.TextBox4.Value).Left = 200
End Sub

Merci pour les coup de main et A +

Rechercher des sujets similaires à "userform"