Recherche vba
Fermé
tuxy88
Messages postés
11
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
16 novembre 2013
-
11 nov. 2013 à 18:26
tux88 - 17 nov. 2013 à 09:50
tux88 - 17 nov. 2013 à 09:50
A voir également:
- Recherche vba
- Recherche musique - Guide
- Google recherche par image - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche adresse - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
7 réponses
via55
Messages postés
14406
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 avril 2024
2 703
11 nov. 2013 à 18:57
11 nov. 2013 à 18:57
Bonsoir
Oui c'est possible
Tu as du mettre un bouton de validation sur ton userform
Dans le code du bouton tu mets une macro de ce style :
Private Sub CommandButton1_Click()
On Error GoTo erreur 'gestion de l'erreur si reference non trouvée
a = UserForm1.TextBox1.Value 'récupération de la donnée en Textbox1
ligne = Application.Match(a, Range("A1:A30"), 0) 'recherche de cette donnée dans la plage A1:A30 - renvoie le n° de ligne où est la donnée
b = UserForm1.TextBox2.Value ' récupération de la donnée Textbox2
ActiveSheet.Range("H" & ligne) = b ' écriture de cette donnée en colonne H et même ligne que la donnée de Textbox1
Exit Sub ' sortie
erreur: ' gestion de l'erreur sin donnée non trouvée par affichage d'un message
MsgBox ("Cette valeur n'existe pas dans la colonne A")
End Sub
A adapter et à compléter selon tes besoins
Cdlmnt
Oui c'est possible
Tu as du mettre un bouton de validation sur ton userform
Dans le code du bouton tu mets une macro de ce style :
Private Sub CommandButton1_Click()
On Error GoTo erreur 'gestion de l'erreur si reference non trouvée
a = UserForm1.TextBox1.Value 'récupération de la donnée en Textbox1
ligne = Application.Match(a, Range("A1:A30"), 0) 'recherche de cette donnée dans la plage A1:A30 - renvoie le n° de ligne où est la donnée
b = UserForm1.TextBox2.Value ' récupération de la donnée Textbox2
ActiveSheet.Range("H" & ligne) = b ' écriture de cette donnée en colonne H et même ligne que la donnée de Textbox1
Exit Sub ' sortie
erreur: ' gestion de l'erreur sin donnée non trouvée par affichage d'un message
MsgBox ("Cette valeur n'existe pas dans la colonne A")
End Sub
A adapter et à compléter selon tes besoins
Cdlmnt
tuxy88
Messages postés
11
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
16 novembre 2013
11 nov. 2013 à 19:52
11 nov. 2013 à 19:52
Merci beaucoup, je vais tester ça tout de suite :)
Bonne soirée ;)
Bonne soirée ;)
tuxy88
Messages postés
11
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
16 novembre 2013
11 nov. 2013 à 20:00
11 nov. 2013 à 20:00
Juste exceptionnelle ta réponse!!!
Très bonne soirée à toi ;)
PS : comment on met en résolu?
Très bonne soirée à toi ;)
PS : comment on met en résolu?
tuxy88
Messages postés
11
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
16 novembre 2013
11 nov. 2013 à 20:22
11 nov. 2013 à 20:22
Re Bonsoir,
J'ai une petite question :
Comment vba fais pour envoyer sur la bonne feuille ??? Sachant que nul part dans mon code je n'ai écrit sur quelle feuille il doit envoyer les données
Voici mon code au complet :
Private Sub UserForm_Initialize()
heure.Value = Time
dat.Value = Date
End Sub
Private Sub CommandButton1_Click()
a = UserForm3.Numéro.Value
ligne = Application.Match(a, Range("A1:A65536"), 0)
b = UserForm3.dat.Value
ActiveSheet.Range("O" & ligne) = b
c = UserForm3.heure.Value
ligne = Application.Match(a, Range("A1:A65536"), 0)
ActiveSheet.Range("P" & ligne) = c
d = UserForm3.nom.Value
ligne = Application.Match(a, Range("A1:A65536"), 0)
ActiveSheet.Range("Q" & ligne) = d
e = UserForm3.quantité.Value
ligne = Application.Match(a, Range("A1:A65536"), 0)
ActiveSheet.Range("R" & ligne) = e
CommandButton1.Visible = False
CommandButton2.Visible = False
UserForm3.PrintForm
Unload Me
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Cordialement
Bonne soirée
J'ai une petite question :
Comment vba fais pour envoyer sur la bonne feuille ??? Sachant que nul part dans mon code je n'ai écrit sur quelle feuille il doit envoyer les données
Voici mon code au complet :
Private Sub UserForm_Initialize()
heure.Value = Time
dat.Value = Date
End Sub
Private Sub CommandButton1_Click()
a = UserForm3.Numéro.Value
ligne = Application.Match(a, Range("A1:A65536"), 0)
b = UserForm3.dat.Value
ActiveSheet.Range("O" & ligne) = b
c = UserForm3.heure.Value
ligne = Application.Match(a, Range("A1:A65536"), 0)
ActiveSheet.Range("P" & ligne) = c
d = UserForm3.nom.Value
ligne = Application.Match(a, Range("A1:A65536"), 0)
ActiveSheet.Range("Q" & ligne) = d
e = UserForm3.quantité.Value
ligne = Application.Match(a, Range("A1:A65536"), 0)
ActiveSheet.Range("R" & ligne) = e
CommandButton1.Visible = False
CommandButton2.Visible = False
UserForm3.PrintForm
Unload Me
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Cordialement
Bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tuxy88
Messages postés
11
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
16 novembre 2013
11 nov. 2013 à 20:32
11 nov. 2013 à 20:32
J'ai trouvé lol
Au lieu de activesheets, je mets Worksheets("la feuille que je veux")
et hop c'est parti!!!
Tchou tchou et encore merci
Au lieu de activesheets, je mets Worksheets("la feuille que je veux")
et hop c'est parti!!!
Tchou tchou et encore merci
via55
Messages postés
14406
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 avril 2024
2 703
11 nov. 2013 à 20:42
11 nov. 2013 à 20:42
Et voila :
tu peux même ecrire Sheets("mafeuile") ou sheets(n) dans lequel n est le rang de la feuille (pratique dans une boucle For Next pour atteindre successivement la 2eme, 3eme et 4eme feuille par exemple
Bonne suite
tu peux même ecrire Sheets("mafeuile") ou sheets(n) dans lequel n est le rang de la feuille (pratique dans une boucle For Next pour atteindre successivement la 2eme, 3eme et 4eme feuille par exemple
Bonne suite
tuxy88
Messages postés
11
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
16 novembre 2013
12 nov. 2013 à 22:14
12 nov. 2013 à 22:14
Bonsoir,
C'est moi que revoilà...lol
J'ai un soucis! En fait ça ne marche pas non plus le code si la feuille sur laquelle j'envoie les données n'est pas la feuille active :/
Est-ce qu'il y a une solution à mon problème?
De plus pour le code actuel, je ne mets pas "ligne = Application.Match(a, Range("A1:A65536"), 0)" dans b,c,d et e
Bonne soirée
++
C'est moi que revoilà...lol
J'ai un soucis! En fait ça ne marche pas non plus le code si la feuille sur laquelle j'envoie les données n'est pas la feuille active :/
Est-ce qu'il y a une solution à mon problème?
De plus pour le code actuel, je ne mets pas "ligne = Application.Match(a, Range("A1:A65536"), 0)" dans b,c,d et e
Bonne soirée
++
via55
Messages postés
14406
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 avril 2024
2 703
12 nov. 2013 à 22:49
12 nov. 2013 à 22:49
Je ne comprends pas bien où est le souci !
Pour envoyer vers une autre feuille exemple :
Sheets("Feuil3").Range("H" & ligne) = UserForm1.TextBox2.Value
En ayant ouvert l'userform à partir de n importe quelle feuille cette ligne de code inscrit bien la valeur du Texbox2 de l'Userform dans la cellule H et ligne (déterminée avant avec la procédure) de la Feuil3
Tu peux poster un exemple de ton fichier allégé et anonymé sur cjoint.com et indiquer ici ensuite le lien fourni en précisant où devraient aller s'inscrire les données
Cdlmnt
Pour envoyer vers une autre feuille exemple :
Sheets("Feuil3").Range("H" & ligne) = UserForm1.TextBox2.Value
En ayant ouvert l'userform à partir de n importe quelle feuille cette ligne de code inscrit bien la valeur du Texbox2 de l'Userform dans la cellule H et ligne (déterminée avant avec la procédure) de la Feuil3
Tu peux poster un exemple de ton fichier allégé et anonymé sur cjoint.com et indiquer ici ensuite le lien fourni en précisant où devraient aller s'inscrire les données
Cdlmnt
tuxy88
Messages postés
11
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
16 novembre 2013
16 nov. 2013 à 09:23
16 nov. 2013 à 09:23
Bonjour,
Je n'arrive toujours pas à envoyer les données vers la feuille voulue.
Voici le lien de mon fichier simpliflé https://www.cjoint.com/?3Kqi1RLbeii
Il est simplifié mais si j'arrive à faire ce que je veux sur celui-ci, l'adaptation au vrai fichier est assez simple.
j'ai essayé avec un code diffèrent du votre sur l'userform3 mais il y a également un bug.
Je pense simplifier les userforms, cela fait un peu "jeu" lol, comme regrouper 1ère utilisation et 2ème utilisation, ce serait un TextBox qui permettrait de savoir.
Le choix de la préparation pourrait être fait par liste déroulante aussi mais bon il faudrait un code pour envoyer sur la feuille correspondante, et là je galère déjà suffisamment pour des codes simples :/
De plus, je pars un peu plus loin mais je souhaite par la suite (quand j'aurai l'esprit vba xD) de protéger le fichier par mot de passe, l'utilisateur serait reconnu automatiquement et son nom serait inscrit ainsi dans l'userform sans possibilité de choix. De plus, l'affichage du userform lors d'exécution serait en plein écran mais l'impression en format prédéfini dans vba... Voilà c'est juste pour aller plus loin...
Merci pour votre aide
Cordialement ;)
Je n'arrive toujours pas à envoyer les données vers la feuille voulue.
Voici le lien de mon fichier simpliflé https://www.cjoint.com/?3Kqi1RLbeii
Il est simplifié mais si j'arrive à faire ce que je veux sur celui-ci, l'adaptation au vrai fichier est assez simple.
j'ai essayé avec un code diffèrent du votre sur l'userform3 mais il y a également un bug.
Je pense simplifier les userforms, cela fait un peu "jeu" lol, comme regrouper 1ère utilisation et 2ème utilisation, ce serait un TextBox qui permettrait de savoir.
Le choix de la préparation pourrait être fait par liste déroulante aussi mais bon il faudrait un code pour envoyer sur la feuille correspondante, et là je galère déjà suffisamment pour des codes simples :/
De plus, je pars un peu plus loin mais je souhaite par la suite (quand j'aurai l'esprit vba xD) de protéger le fichier par mot de passe, l'utilisateur serait reconnu automatiquement et son nom serait inscrit ainsi dans l'userform sans possibilité de choix. De plus, l'affichage du userform lors d'exécution serait en plein écran mais l'impression en format prédéfini dans vba... Voilà c'est juste pour aller plus loin...
Merci pour votre aide
Cordialement ;)
via55
Messages postés
14406
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 avril 2024
2 703
17 nov. 2013 à 01:41
17 nov. 2013 à 01:41
Bonsoir
Je ne peux pas faire fonctionner correctement ton fichier, tu as mis des contrôles pour les date et heure que je n'ai pas et qui me provoque une erreur (je ne vois d'ailleurs pas l'utilité de contrôles particuliers puisqu 'apparemment l'utilisateur n'a justement pas le choixde la date et l'heure)
D'autre part il y a des commandes qui ne peuvent pas fonctionner comme Numéro.ListIndex qui est pour une zone de liste alors que numéro est une textbox
Bref à partir de tes bases j'ai refait un nouveau fichier avec un code simplifié (et qui fonctionne)
J'ai mis la procédure pour des mots de passe et l'inscription automatique de l'utilisateur
Pour l'impression tu verras j'ai fait le choix d'imprimer plutôt une feuille du classeur dans laquelle sont envoyées les données car sa mise en page et son paramétrage est plus aisé et accessible que de le faire par macro
https://www.cjoint.com/?0KrbPDhUQEB
En espérant que cela te sera utile
Cdlmnt
Je ne peux pas faire fonctionner correctement ton fichier, tu as mis des contrôles pour les date et heure que je n'ai pas et qui me provoque une erreur (je ne vois d'ailleurs pas l'utilité de contrôles particuliers puisqu 'apparemment l'utilisateur n'a justement pas le choixde la date et l'heure)
D'autre part il y a des commandes qui ne peuvent pas fonctionner comme Numéro.ListIndex qui est pour une zone de liste alors que numéro est une textbox
Bref à partir de tes bases j'ai refait un nouveau fichier avec un code simplifié (et qui fonctionne)
J'ai mis la procédure pour des mots de passe et l'inscription automatique de l'utilisateur
Pour l'impression tu verras j'ai fait le choix d'imprimer plutôt une feuille du classeur dans laquelle sont envoyées les données car sa mise en page et son paramétrage est plus aisé et accessible que de le faire par macro
https://www.cjoint.com/?0KrbPDhUQEB
En espérant que cela te sera utile
Cdlmnt
A première vue, cela à l'air super!!!
Je vais regarder de manière plus approfondie ;)
En fait pour adapter à l'ecran, j'ai mis des boutons +/- pour zoomer! et je fais l'userform directement à la taille de l'impression.
Je reviens lorsque j'ai avancé sur vos codes mais encore une fois un grand merci :) :) :)
Bon dimanche à vous
Je vais regarder de manière plus approfondie ;)
En fait pour adapter à l'ecran, j'ai mis des boutons +/- pour zoomer! et je fais l'userform directement à la taille de l'impression.
Je reviens lorsque j'ai avancé sur vos codes mais encore une fois un grand merci :) :) :)
Bon dimanche à vous