Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1751 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro pour formulaire

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro pour formulaire

n°2001912
damien2010
Posté le 15-06-2010 à 17:54:38  profilanswer
 

Bonjour à tous,  
J'essaie de réaliser un formulaire pour enregistrer, rechercher, et modifier les données des outillages.
Enregistrer, rechercher et supprimer sont des macro que j'ai réussi à réaliser avec un peu d'aide tout de même, n'ayant que trop peu pratiqué ceci.
Mon problème est la macro concernant la modification des caractéristiques d'un outillage dans le formulaire, j'arrive à rechercher l'outillage afin de mettre les caractéristiques dans le formulaire mais comment enregistrer les nouvelles caractéristiques à la place des anciennes?  
 
Voici la tâche qui me permet de copier les données dans le formulaire:

Code :
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. If Mode = 1 Then
  3.     If MsgBox("Est-ce l'outillage que vous recherchiez ?", vbQuestion + vbYesNo) = vbYes Then
  4.         Mode = 0
  5.         Rows(Target.Row).Select
  6.         Selection.Copy
  7.         Sheets("Formulaire" ).Select
  8.         Sheets("Formulaire" ).Range("B1" ).Select
  9.        
  10.         Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
  11.         False, Transpose:=True
  12.         Sheets("Formulaire" ).Range("B1" ).Select
  13.        
  14.         Sheets("Base de données" ).ShowAllData
  15.     Else
  16.         If MsgBox("Annuler la demande de recherche ?", vbQuestion + vbYesNo) = vbYes Then
  17.             Mode = 0
  18.             Sheets("Base de données" ).ShowAllData
  19.         End If
  20.     End If
  21. End If
  22. End Sub

mood
Publicité
Posté le 15-06-2010 à 17:54:38  profilanswer
 

n°2002057
dje69r
Arme de distraction massive
Posté le 16-06-2010 à 10:18:23  profilanswer
 

Hello
 
Pourquoi créé un nouveau sujet ? Continuer dans l'ancien aurait ete plus facile, pour d'autres personnes ils auraient eu le contexte...
 
J'aime bien le "un peu d'aide" :p
 
Pour enregistrer les 'nouvelles' caracteristiques, tu remplaces les données par celle saisie dns le formulaire... Tu as la ligne des données à modifier en ligne 6.
Ou se situe le souci ?


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°2002294
damien2010
Posté le 16-06-2010 à 16:53:24  profilanswer
 

ok, avec beaucoup d'aide :)  
 
c'est à dire que maintenant j'ai la macro qui permet de rechercher et supprimer imbriquée l'une dans l'autre et je ne peux pas ajouter la fonction modifier car il faut rechercher les caractéristiques, ensuite laisser le temps à l'opérateur de modifier ce qu'il désire et enfin recopier les données à la même ligne.
Je pense que effectivement je dois reprendre le système avec la cible mais comment laisser le temps à l'opérateur de modifier sans une autre macro ?

n°2002373
dje69r
Arme de distraction massive
Posté le 16-06-2010 à 22:46:42  profilanswer
 

Citation :

J'aime bien le "un peu d'aide" :p

c'était pr souligner ta "franchise" et non pas sur l'aide que j'ai pu t'apporter...
 
Pourquoi est ce que ça te pose un souci de faire une autre macro ?
Si vraiment c'est un problème, tu peux tjrs passer par une macro unique avec des paramètres lancé par les boutons.
 
Mais je pense que c'est plus pratique (si tu veux modifier par la suite etc.) d'avoir une macro pour chaque traitement. Recherche, suppression, modification.
Dans tous les cas la procédure principale est la recherche car que ce soit pour modifier ou supprimer il faut en premier lieu faire une recherche.
Donc tu peux passer par une variable globale qui stocke le numéro de ligne a la fin de ta procédure de recherche. Et tu utilises cette variable globale pour modifier ou supprimer ta ligne dans tes procédures modifier/supprimer.
 
Si tu veux, renvois moi le fichier je zieuterai demain.


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°2002702
dje69r
Arme de distraction massive
Posté le 18-06-2010 à 11:41:41  profilanswer
 

Déjà tu as un souci sur la recherche. Il ne cherche pas ce qu'on saisi dans le formulaire, tout simplement parceque tu as deplacé ton formulaire.
Donc les valeurs :  
    Ref = Sheets("Formulaire" ).Cells(1, 2)
    SN = Sheets("Formulaire" ).Cells(2, 2)
Ne sont plus bonnes mais plutot :
    Ref = Sheets("Formulaire" ).Cells(5, 4)
    SN = Sheets("Formulaire" ).Cells(6, 4)
La au moins la recherche fonctionne.
 
Ensuite comme dans l'aide tu precises qu'il faut chercher avant de modifier, pas besoin de mettre la procedure de modification dans celle de recherche.
Je declare une variable globale LigneSch, qui quand tu cliques sur une ligne de ta base de donnée recupere le numéro de ligne.
Ensuite quand on clique sur modifier, il va regarde cette variable LigneSch, si elle contient qqchose (c'est qu'on a cliqué et repondu oui pour l'import du formulaire) il fait la modification en utilisant cette variable comme reference de la ligne a modifier.
 
Fichier ICI


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro pour formulaire

 

Sujets relatifs
Acces - Ouverture de FormulaireMacro Excel: Pivottables: Argument ou Appel de procédure incorrect
Validation d'un formulaire dans une lightbox php / javasciptMacro Excel VBA IE
Problème formulaire HTML& PHPFormulaire et macro sous Word 2007
créer une macro VBA qui modifiera une base de données automatiquement[word] incompatibilité macro et formulaire
récupérer les valeurs d'un Formulaire (UserForm) dans une macro[VBA] Accéder à un formulaire access via une macro sous excel
Plus de sujets relatifs à : Macro pour formulaire


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR