Excel VBA userform

Résolu/Fermé
anthony - 17 janv. 2011 à 11:31
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 janv. 2011 à 08:38
Bonjour,

Comment faut il procéder pour que la macro qui fonctionne en la lançant manuellement soit accessible directement via une page d'accueil avec le user form créé ?
http://www.cijoint.fr/cjlink.php?file=cj201101/cijuc4eaWR.xls
à la place de la boîte de saisie je souhaiterais que ce soit la 1ère case du user form et le résultat s'affiche dans la seconde au lieu de la boîte de dialogue

merci à vous

A voir également:

5 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
17 janv. 2011 à 12:47
Bonjour,
Essaye ceci. Pour "lancer" l'UserForm : ALT+F8 choisir "Lancement_UserForm" et Exécuter...
Pour info, j'utilise la méthode find pour chercher le contenu du textbox1 :
Private Sub CommandButton2_Click()
'déclaration des variables
Dim Trouve As Range
Dim Valeur_cherchee As String
'Si pas de saisie alors on quitte la procédure avec message à l'utilisateur
If TextBox1 = "" Then
    MsgBox "Veuillez saisir un numéro de produit"
    Exit Sub
End If
'Valeur_cherchee est la variable, contenue dans textbox1, que l'on va chercher
'dans la feuille "Serie-masques" Colonne 1 (A) avec la méthode find
Valeur_cherchee = TextBox1.Value
'ici trouve représente la cellule ou l'on a trouvé (ou pas) le n° de produit
    Set Trouve = Sheets("Serie-masques").Columns(1).Cells.Find(what:=Valeur_cherchee)
        'si le numéro n'existe pas message à l'utilisateur
        If Trouve Is Nothing Then
            MsgBox "Numéro de produit inconnu"
        Else
        'Si le numéro existe alors on met la valeur de la cellule voisine colonne C
            TextBox2.Value = Trouve.Offset(0, 2).Value
        End If
Set Trouve = Nothing
End Sub
0
YEEEEEES
trop fort, ça fonctionne nickel,
j'ai juste modifié
TextBox2.Value = Trouve.Offset(0, 2).Value en
TextBox2.Value = Trouve.Offset(0, 1).Value pour obtenir la série

merci beaucoup pijaku
j'essayais de faire autrement qu'avec l fonction vlookup car ça buggait
0
mince ça n'a pas pris mon message précédent.
j'ai un soucis, si je note 22 par exemple, ça m'affiche une valeur alors que le produit n°22 n'existe pas. comment peut on être sûr que la valeur affichée est la bonne ?
0
bon je n'ai rien dit, je suis tombé sur LE cas particulier qu'est 22 car en testant d'autres nombres ça n'affiche rien, dans le genre je mets le doigt sur le truc différent, je suis pas mauvais.

merci à toi, excellent travail
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
18 janv. 2011 à 08:36
Bonjour,
Si tu as une référence comme : 22456 et que tu saisis 22, c'est normal qu'il te trouve quelque chose... Il trouve ton 22 dans la chaîne 22456...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,
l'application est très appréciée des utilisateurs ;-) bravo

j'ai une question.
Une fois la série trouvée et affichée, il faudrait à partir du bouton "everest" que le programme everest s'ouvre (C:\Documents and Settings\All Users\Documents\everest.exe) et que la fenêtre permettant de sélectionner le fichier à charger soit à l'écran pour éviter de perdre du temps dans l'arborescence des répertoires.

par contre les choses sont complexes car les fichiers à charger ne sont pas dans un même répertoire mais dans des sous-répertoires de cette cible :
X:\CAD\Export_Data\Fichiers_Testeurs
X:\CAD\Export_Data\Fichiers_Testeurs\D1200_1224\1216

Si par exemple on obtient la série 1216 avec ta macro, il faut ouvrir everest, choisir open, se rendre ici X:\CAD\Export_Data\Fichiers_Testeurs, ouvrir le dossier D1200_1224 car 1216 est bien compris entre 1200 et 1224, et ensuite ouvrir le dossier 1216 et là on tombe sur 3 ou 4 fichiers et l'utilisateur n'aurait plus qu'à choisir celui qui l'intéresse.

en gros il faudrait qu'il y ait comme un search dans le répertoire global
X:\CAD\Export_Data\Fichiers_Testeurs avec le critère du numéro de série et hop on accède aux 3-4 fichiers

Penses tu que ce soit réalisable ? et de quelle manière ?

http://www.cijoint.fr/cjlink.php?file=cj201101/cijvlZ3Ras.xls
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
19 janv. 2011 à 11:22
Salut,
Je ne sais pas si ce que tu demandes est faisable...
Je vais voir si quelqu'un de plus compétent peux prendre le relais...
A+
0
ok je vais créer un sujet
0
Bonsoir pijaku, l'effet domino de ton code, maintenant les utilisateurs ont fait la demande d'avoir un fichier actualisé par jour. ça se déroulerait ainsi, la feuille serie masque serait le fichier journalier et il faudrait à partir de la page d'accueil contenant le user form,
soit allez piocher le numéro de série dans ce fichier sans l'ouvrir (il sera tjs au même endroit et tjs avec le même nom)
soit faire un import des nouvelles données dans le fichier du user form, sur la feuille serie masque en écrasant les lignes.
tu saurais comment faire l'une des deux méthodes ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
25 janv. 2011 à 08:38
Bonjour,
Ta question mérite l'ouverture d'un nouveau sujet...
0