Faire un RechercheV et remplacement de certaines valeurs

Bonjour,

Suite à une demande d'un mais, j'aimerais modifié mon programme VBA déjà existant sur ce fichier :

La modification que j'aimerais pouvoir faire est d'inclure la possibilité de retrouvé une carte dans le tableau à la manière d'un RechercheV dans excel basique et de pouvoir renseigner un changement au niveau de 3-4 paramètres. Le nbr de carte Full art (FA), le nombre de carte non Full Art (NFA) [que ce soit à rajouter ou retirer de la valeur de base], et la modification des rangements s'il y a un changement de boites.

L'idée serait donc qu'à partir d'un menu déroulant, où si l'on note une partie du nom que cela nous le trouve tout de suite la carte, nous affiche juste les 4 paramètres cités plus haut et d'avoir d'autre case permettant de modifier directement les anciennes case en faisant une bête addition ou soustraction en fonction de si on a plus de carte ou pas.

Ne sachant pas trop comment tourner la chose et ne m'y connaissant pas assez en VBA j'aimerais beaucoup un coup de main.

PS : de la colonne K à W normalement se sera masqué

Merci à ceux qui répondront et si vous avez des questions n'hésitez pas.

Salut,

J'ai compris que tu as un certain nombre de cartes dans les lignes 31 et suivantes et que tu voudrais pouvoir modifier certaines données les concernant.

Selon moi il y aurait - entre autres - ces possibilités de démarrer :

A) soit l'utilisateur sélectionne le nom de la carte dans les cellules A31 à Axxx et cliques sur un bouton (le clic sur ce bouton sans sélection correcte générerait un message d'erreur) et une fenêtre (UserForm) s'ouvrirait avec les données qu'il serait possible de modifier,

B) soit il faudrait effectuer un double-clic sur l'une des cellules A31:Axxx et la même fenêtre s'ouvrirait (message d'erreur alors inutile en cas de double-clic sur une autre cellule ??),

C) soit il faudrait cliquer sur un bouton et le choix de cartes modifiables serait inscrit directement dans le UserForm qui s'ouvrirait alors et le choix de la carte à modifier se ferait à cet endroit (la solution la moins intéressante à mon avis).

La solution B serait ma préférée, mais il faut alors soit que l'utilisateur connaisse la combine, soit placer une instruction y relative quelque part sur la feuille ou je-ne-sais-où d'autre.

Ensuite l'utilisateur modifierait les paramètres modifiables et confirmerait les changements dans ce UserForm, changements qui viendraient s'inscrire sur ta feuille Excel.

Si je n'ai rien compris, tâches d'être plus précis dans tes explications.

Cordialement.

Bonsoir,

Désolé pour la réponse tardive (pour cause de vacance sans le pc). Je vois très bien ce que vous proposer et ceci m'aide effectivement. Merci à vous et encore désolé pour mon absence

Salut, merci pour ta réponse.

Je ne vois pas en quoi ma dernière réponse peut t'aider, si tu ne choisis pas l'une des variantes proposées afin que je la réalise !

Ou est-ce que tu as trouvé ta solution ailleurs ?

Ou est-ce que le sujet ne t'intéresse plus ?

Ou est-ce que tu n'as pas compris mon texte ?

Ou est-ce que .......

Bonne continuation.

En fait pendant mes vacances j'ai parler un peu avec un amis qui ma parler de certaines fonction que je ne connaissais pas. Et j'ai tester hier soir sachant que je me suis baser sur votre proposition a pour la construire. J'ai d'ailleurs pu l'inclure directement dans le code de ma macro principale sous forme d'un userform multipage . Il faut en revanche fermer et réouvrir le userform pour que la liste sois prise en compte mais cela fonctionne. Voici les codes rajouter.

Dans Initialize :

'initalisation de la liste
ListeFOW.List = Sheets("FOW").ListObjects("Tab_FOW").ListColumns(1).DataBodyRange.Value

----

Private Sub ListeFOW_Change()

Dim Lagne As Integer

Lagne = ListeFOW.ListIndex + 1

With Sheets("FOW").ListObjects("Tab_FOW").DataBodyRange
    TextBoxAFA = .Item(Lagne, 6) 'Nbr de carte full art
    TextBoxANFA = .Item(Lagne, 7) 'Nbr de carte non full art
    TextBoxARANG = .Item(Lagne, 9) 'Rangement 1
    TextBoxARANG2 = .Item(Lagne, 10) 'Rangement 2

End With
End Sub

-----

Private Sub btnMC_Click()
Dim Lagne As Integer

Lagne = ListeFOW.ListIndex + 1

With Sheets("FOW").ListObjects("Tab_FOW").DataBodyRange
    If TextBoxNOFA <> "" Then
        .Item(Lagne, 6).Value = .Item(Lagne, 6).Value _
            + TextBoxNOFA.Value
        TextBoxNOFA = ""
        TextBoxAFA.Value = .Item(Lagne, 6).Value
    End If
    If TextBoxNONFA <> "" Then
        .Item(Lagne, 7).Value = .Item(Lagne, 7).Value _
            + TextBoxNONFA.Value
        TextBoxNONFA = ""
        TextBoxANFA.Value = .Item(Lagne, 7).Value
    End If
    MsgBox ("Modification du nombre de cartes effectuée")
End With
End Sub

(ceci est un bouton que j'ai essayer pour voir juste la modification du nombre de cartes du fichier)

Rechercher des sujets similaires à "recherchev remplacement certaines valeurs"