Rechercher des données sur excel pour les incrémenter dans un formulaire

Résolu
Signaler
Messages postés
2
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
17 février 2009
-
Messages postés
2
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
17 février 2009
-
Bonjour,

Je dois mettre en place un outil de travail qui puisse stocker les commandes entrées (et diverses infos ) sur une feuille excel. Ce tableau comporte une colonne n° de commande.
Pour le moment, j'ai fait 3 formulaires : le 1er permet de rentrer les données initiales liées à la commande (avant la livraison). Les informations entrées dans les TextBox, ListBox...s'incrémentent dans mon tableau excel une fois que l'utilisateur "valide" (bouton formulaire). Après, toujours sur le même formulaire1, l'utilisateur peut accéder au formulaire 2 pour remplir les infos secondaires qui s'incrémenteraient dans la même ligne du tableau excel que la commande (pour l'instant je n'y suis pas parvenue).
Ensuite, j'ai fait un bouton sur ma feuille excel qui permet d'afficher une fenêtre (formulaire n°3) ou l'utilisateur pourrait reprendre une ligne de commande excel dejà entrée afin d'entrer les données du 2nd formulaire s'il ne l'a pas fait à partir du formulaire1 (procédure ci-dessus).

1er problème:

Reprendre une commande. je voudrais que lorsque le formulaire 3 s'affiche, il demande à l'utilisateur d'entrer son n° de commande recherché puis, que le formulaire 1 s'active et que toutes les infos de la ligne de commande excel soient reprises dans les TextBox, ComboBox... . A partir de là, l'utilisateur peut alors accéder au formulaire 2 pour remplir les infos. Ainsi, les infos iront sur la ligne de commande reprise.

Pour l'instant, j'ai trouvé quelques programmes que j'ai remanié (mais il y a beaucoup d'erreurs car je suis débutante!):

Sub CommandButton3_Click() 'Bouton du formulaire 3 pour rechercher le n° de commande'



Dim p As Integer
Dim mot As String
Dim cell As Range
Dim maplage As Range
Dim i As Integer



MsgBox ("Sélectionner la plage dans laquelle la recherche est effectuée, ensuite cliquer sur Recherche") 'recherche = bouton sur la feuille excel'
UserForm4.Hide
'la fenêtre doit se fermer pour sélectionner la plage"



maplage = Selection.Address

'à partir là il indique : erreur d'éxécution 91 , variable objet ou variable de bloc WITH non définie'




mot = InputBox("Entrer le n° de commande à rechercher dans la plage " & maplage)



p = 1
 
Do While p > 0
For Each cell In Range(maplage)
    
       
        If cell.Value Like "*" & mot & "*" Then
       
        UserForm1.Show
        Cells(cell.Value, 4) = TextBox2 'Ici, les valeurs de la ligne de commande s'incrémenteraient automatiquement dans le USF1"
        Cells(cell.Value, 6) = ComboBox1 '........'
        
        Else: cell.Value = cell.Value
       
        End If
Next
       

Loop
End Sub

Je
ne sais pas d'où vient l'erreur "91". Pourriez vous m'aider!
D'autre part, lorsque le n° de commande est trouvé, je souhaiterais que le USF1 s'ouvre ("UserForm 1.show") et que toutes les données de la ligne de commande du tableur s'incrémentent dans les ComboBox, ListBox.... Auriez vous un conseil à me donner?
Pour finir, je ne sais pas comment mettre un lien entre le 1er et le second formulaire pour que les informations soient sur la même ligne excel.



Je vous remercie de votre aide!!!!

2 réponses

Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Bonjour

Pour l'erreur 91, il faut attribuer à la Range "maplage" la 'Selection' en écrivant cela :
Set maplage = Selection
Selection.Address étant une chaine de caractères sous la forme ( "$D$5" ), donc ce n'est pas la bonne syntaxe.
Pour le reste de tes soucis je me donne un temps pour voir ce que je pourrai faire.

Aller courage
Messages postés
2
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
17 février 2009

Merci pour ce coup de pouce, je vais le faire dès maintenant! Bonne journée!