USERFORM VBA CODE - PROBLEM TO FIND ROW

Bonjour,

J'utilise un formulaire pour ajouter et pour voir les donnees d'une database.

Le code pour ajouter une nouvelle entrée sur la prochaine ligne vide marche parfaitement. Celui qui permet de voir dans le formulaire les donnees de la feuille d'apres la "ref" du produit aussi.

J'essaye maintenant de creer un bouton dans le formulaire afin de pouvoir modifier les donnees deja dans la feuille pour la bonne reference de produit. J'utilise pour cela la meme definition de ligne que celle qui permet de voir les donnees dans le formulaire c a dire

Dim IROW As Long
Dim Irow1 As Long
Dim WSH As Worksheet
Dim WSH1 As Worksheet
Set WSH = ThisWorkbook.Worksheets("RECAP")
Set WSH1 = ThisWorkbook.Worksheets("PRICING FINAL")

IROW = WSH.Cells.Find(What:=Me.REF.Value, LookIn:=xlValues, SearchOrder:=xlRows, SearchDirection:=xlPrevious).row
Irow1 = WSH1.Cells.Find(What:=Me.REF.Value, LookIn:=xlValues, SearchOrder:=xlRows, SearchDirection:=xlPrevious).row

seulement le resultat est toujours IROW=0 meme si "ME.ref.value" est correct.

Pour info, la ligne 1 de mes tableaux sont les headers. Ainsi si je cherche la reference 2016CT003 le irow devrait etre = 4 et lorsque je met a jour les infos via le formulaire les colonnes correspondantes de la ligne 4 devrait se mettre a jour . Hors rien ne se passé a cause du resultat de IROW.....

quelqu'un pourrait me dire ou est l'erreur? alors que ce meme code marche tres bien pour trouver les infos dans la database et les afficher dans le formulaire.....

Merci d'avance.

Bonjour

Étonnant que Find te retourne 0

As tu un "On Error Resume Next" avant ?

Ton fichier en cause serait bien utile dans ce cas

Bonjour Mariec_06,

Est-il possible de joindre le fichier excel/un fichier simplifié afin de pouvoir t'aider?

Voila le fichier sachant qu'il est bien sur bien plus imposant....et que cette formule pour "identifier" la ligne marche pour afficher les donnees dans le formulaire

32example.xlsm (277.96 Ko)

Bonjour

Je ne sais pas quoi dire

Un essai avec "2016CT003" et IROW retourne 4

Si on n'a pas le fichier en cause, cela ne va pas être évident de trouver l'erreur

Mais je suis toujours perplexe quand à Find te retourne 0

Pour moi c'est impossible avec ton code

Désolé je ne peux t'aider

le fichier que j'ai attaché ne suffit pas?

Personnellement à part avoir un message d'erreur lorsqu'une cellule est en "N/A" (ou un problème dans la formule) tout semble fonctionner.

Qui plus est tu dis que tu réutilises un code qui fonctionne

Dim IROW As Long
Dim Irow1 As Long
Dim WSH As Worksheet
Dim WSH1 As Worksheet
Set WSH = ThisWorkbook.Worksheets("RECAP")
Set WSH1 = ThisWorkbook.Worksheets("PRICING FINAL")

IROW = WSH.Cells.Find(What:=Me.REF.Value, LookIn:=xlValues, SearchOrder:=xlRows, SearchDirection:=xlPrevious).row
Irow1 = WSH1.Cells.Find(What:=Me.REF.Value, LookIn:=xlValues, SearchOrder:=xlRows, SearchDirection:=xlPrevious).row
 

Mais dans le code je ne trouve ce code qu'une seule fois ... Si tu as as essayé de réutiliser ce code je devrais logiquement le trouver deux fois dans le code?

PS: Le formulaire est tellement grand qu'il ne passe même pas sur mon écran haha

je voulais dire que la formule de IROW est la meme que pour Getdata qui affiche les infos de la worksheet dans le formulaire et marche tres bien

mais dans le formulaire si je selectionne 2016CT003 j'ai bien les infos deja existantes qui s'affichent mais si je veux les modifier ou rentrer celles qui manquent et cliquer sur 'save' la worksheet ne se met pas a jour et le formulaire reprend les infos d'avant changement.............

je voudrais juste pouvoir corriger une info deja existante ou la completer................j'arrive tres bien a creer une nouvelle reference mais certaines infos comme 'BL_date' sont connus apres.........je suis donc oblige d'updater la colonne manuellement...

desolee je ne connais rien en VBA et j'ai fait ce formuaire en prenant d'ici de la sur des forums

je pense savoir d'ou vient l'erreur mais je ne vois pas comment la modifier

- GetData qui affiche les donnees dans le formulaire prend les valeurs de la worksheet qui est par exemple pour la REF 2016CT003 column "AP" vide pour l'instant

donc quand je veux la remplir et la sauver dans la worksheet en cliquant sur "save", ca ne le prend pas en compte parce que la valeur de "AP" est predefinie par GetDATA et est egale a "vide"

en gros "Save_data" ne peut pas overwriter les donnees affichees par GetData....

Rechercher des sujets similaires à "userform vba code problem find row"