Macro recherche, report, modification

Macro recherche, report, modification - VB/VBA/VBS - Programmation

Marsh Posté le 01-06-2010 à 17:16:12    

Bonjour à tous,  
Je sollicite vos compétences dans le domaine du VBA afin de finaliser une macro que j'ai commencé à éditer en me documentant sur le Net.
Voici quelques explications sur mes objectifs.
Sur une feuille appelée "Base de données", j'ai une liste d'outillages avec leurs noms en colonne A, prénom en colonne B, ainsi que d'autres descriptions jusqu'à la colonne M.
Sur une seconde feuille appelée "Formulaire", j'ai crée un formulaire en colonne (donc transposé) permettant d'enregistrer un outillage dans la feuille "Base de données".  
Je désire maintenant créer une macro me permettant de rechercher un outillage dans la feuille "Base de données".
   -> A savoir que plusieurs outillages portent le même nom mais pas le même prénom.
   -> Plusieurs propositions sont prévues afin de sélectionner le bon outillage.
Une fois le bon outillage trouvé, je désire copier toutes les caractéristiques (colonne A à M voire plus) de l'outillage dans mon formulaire (colonne B de la feuille "Formulaire) afin de pouvoir les modifier puis d'enregistrer ces modifications dans ma feuille "Base de données".
 
 
Voici l'ébauche de mon code :
 
 
Sub Macro_Recherche()
On Error GoTo fin
Dim Str_Plage As String
Dim Str_Ligne As String
Dim Cel As Range
Dim Feuil As Worksheet
Dim Str_critère As String
Dim X As Byte
 
Str_Plage = "A:A"
Str_critère = InputBox("Outillage à rechercher ?" )
Set Feuil = Sheets("Base de données" )
For Each Cel In Feuil.Range(Str_Plage,Str_Ligne)
If UCase(Cel) Like "*" & UCase(Str_critère) & "*" Then
 
Feuil.Activate
Cel.Activate
 
X = MsgBox("Est ce le bon outillage ?" & Chr(13), vbDefaultButton2 + _
vbQuestion + vbYesNoCancel, "Outillage trouvé" )
Select Case X
Case 6
    Feuil.Activate
    Cel.Activate
    Rows(Str_Ligne).Select
    Selection.Copy
    Sheets("Formulaire" ).Select      
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Exit Sub
Case 2 'annuler on sort
    Exit Sub
Case Else 'Non=7
End Select
End If
Next Cel
fin:
MsgBox ("Outillage inexistant" )
End Sub
 
Voilà en espérant avoir été assez claire sur mes explications,  
Bien cordialement.


Message édité par damien2010 le 01-06-2010 à 17:36:16
Reply

Marsh Posté le 01-06-2010 à 17:16:12   

Reply

Marsh Posté le 02-06-2010 à 15:57:12    

Hello
 
Excel n'est pas un SGBD... Par exemple sous Access c'est fait en 2mn...
 
Le plus simple a mon avis c'est de piloter les filtres automatiques sur ta feuille "Base de données"
 
Tu mets des filtres automatique
Tu poses la question du Nom
Tu filtres avec un 'contient' sur le nom saisi
Tu poses la question si c'est ok
   Si oui, tu te positionnes sur la ligne, et un bouton qui copie/colle
   Si non, tu poses la question avec le prénom
       Tu filtres avec un 'contient' sur le prenom saisi
       Tu poses la question si c'est ok
           Si oui tu te positionnes sur la ligne, et un bouton qui copie/colle
           Sinon tanpis


Message édité par SuppotDeSaTante le 02-06-2010 à 15:57:35

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 02-06-2010 à 17:23:29    

Salut,
merci pour ta réponse mais pourrais-tu m'éclairer sur ce sujet je ne comprends pas bien comment faire, je n'ai encore jamais utilisé les filtres, mais je vais m'y mettre.
Merci d'avance

Reply

Marsh Posté le 02-06-2010 à 17:56:50    

Tu as la possibilité de me faire suivre le fichier que je zieute ?


---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed