XL 2010 Recherche de valeur via Boite de dialogue

jokerfidelio

XLDnaute Occasionnel
Bonjour a tous,

Sur l'exemple donné en fichier joint, j'aimerais faire une recherche de nombre (peu importe le nombre)
Via une boite de dialogue qui permettrait dans un premier temps de demander le nombre recherché et de demander ensuite par qu'elle nombre on souhaiterait le remplacer.

Code utilisé :
Code:
Sub SelectionnerCellulesValeur()
Dim vValeur As Single
Dim vCellule As Object
Dim vSélection As String
vValeur = Val(InputBox("Valeur à sélectionner"))
Selection.CurrentRegion.Select
For Each vCellule In Selection
    If vCellule.value = vValeur Then vSélection = vSélection &
vCellule.Address & "."
Next
If Len(vSélection) > 0 Then
    Range(Left(vSélection, Len(vSélection) - 1)).Select
    Selection.Interior.ColorIndex = 6
End If
End Sub

a l’exécution du code j'ai un message d'erreur ligne 8

- J'aimerais aussi pouvoir incorporer une ligne pour sélectionner une plage reprécise de recherche

je vous remercie d'avance pour vos réponse
 

Pièces jointes

  • TEST.xlsm
    12.5 KB · Affichages: 34

youky(BJ)

XLDnaute Barbatruc
Bonsoir,
Ce code à tester car je pige pas trop la demande
Bruno
VB:
Sub SelectionnerCellulesValeur()
Dim vValeur As Single
Dim vCellule As Object
Dim vSélection As String
Dim ref As Range
Set ref = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8)
vValeur = Val(InputBox("Valeur à sélectionner"))
Range(ref.Address).CurrentRegion.Select
For Each vCellule In Selection
    If vCellule.value = vValeur Then vSélection = vSélection & vCellule.Address & ","
Next
If Len(vSélection) > 0 Then
    Range(Left(vSélection, Len(vSélection) - 1)).Select
    Selection.Interior.ColorIndex = 6
End If
End Sub
 

jokerfidelio

XLDnaute Occasionnel
Bonsoir,
Ce code à tester car je pige pas trop la demande
Bruno
VB:
Sub SelectionnerCellulesValeur()
Dim vValeur As Single
Dim vCellule As Object
Dim vSélection As String
Dim ref As Range
Set ref = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8)
vValeur = Val(InputBox("Valeur à sélectionner"))
Range(ref.Address).CurrentRegion.Select
For Each vCellule In Selection
    If vCellule.value = vValeur Then vSélection = vSélection & vCellule.Address & ","
Next
If Len(vSélection) > 0 Then
    Range(Left(vSélection, Len(vSélection) - 1)).Select
    Selection.Interior.ColorIndex = 6
End If
End Sub

le résultat souhaité :
Une boite de dialogue avec code de recherche, de valeur numérique
premier temps le chiffre recherche ---> seconde boite dialogue "remplacer par" et en option coloriser l’intérieur des cellules
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Pourquoi passer par une macro alors qu'Excel sait le faire tout seul comme un grand???
1) Sélection des cellules
2) CTRL+H
3) Cliquez sur Options puis sur Format
(et choisir le format à appliquer lors du remplacement)
4) Cliquez sur Remplacer tout
01CTRLH.jpg
 

jokerfidelio

XLDnaute Occasionnel
Bonjour le fil, le forum

Pourquoi passer par une macro alors qu'Excel sait le faire tout seul comme un grand???
1) Sélection des cellules
2) CTRL+H
3) Cliquez sur Options puis sur Format
(et choisir le format à appliquer lors du remplacement)
4) Cliquez sur Remplacer tout
Regarde la pièce jointe 1000369
merci pour votre reponse
les collaborateurs non pas tous le meme niveau sur excel, le but est de facilite les manipulations
 

Staple1600

XLDnaute Barbatruc
Re

L'utilisation d'Edition/Remplacer n'est pas réservé aux experts :rolleyes:
En attendant CTRL+H fonctionne, ta macro non :D

Garder à l'esprit, que plus un classeur est simple d'usage et ergonomique, mieux c'est.
Ça rejoint ce principe: le K.I.S.S

PS1: Une macro qui plante n'a jamais facilité les manipulations d'un classeur pour des utilisateurs de base (qui ne connaissent justement pas VBA)

PS2: As-tu au moins essayé ma proposition avant de publier ta réponse?
 

jokerfidelio

XLDnaute Occasionnel
Re

L'utilisation d'Edition/Remplacer n'est pas réservé aux experts :rolleyes:
En attendant CTRL+H fonctionne, ta macro non :D

Garder à l'esprit, que plus un classeur est simple d'usage et ergonomique, mieux c'est.
Ça rejoint ce principe: le K.I.S.S

PS1: Une macro qui plante n'a jamais facilité les manipulations d'un classeur pour des utilisateurs de base (qui ne connaissent justement pas VBA)

PS2: As-tu au moins essayé ma proposition avant de publier ta réponse?

oui j'avais deja essaye avant de poster sur le forum la solution d'Edition/Remplacer
qui d'ailleurs cest vrai fonctionne tres bien
 

Staple1600

XLDnaute Barbatruc
Re

oui j'avais deja essaye avant de poster sur le forum la solution d'Edition/Remplacer
qui d'ailleurs cest vrai fonctionne tres bien
Donc pourquoi une macro dans ce cas?
Et si tu l'as essayé alors pourquoi ce n'est pas cette macro que tu utilises ?
VB:
Sub Macro1()
Dim Valeur1, Valeur2
Valeur1 = InputBox("Saisir la valeur à remplacer?")
Valeur2 = InputBox("Saisir la valeur de remplacement?")
'ici on paramétra grâce à l'enregistreur de macros
'le format souhaité pour les valeurs remplacées
    With Application.ReplaceFormat.Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = -0.249946592608417
        .PatternTintAndShade = 0
    End With
Selection.Replace What:=Valeur1, Replacement:=Valeur2, LookAt:=xlPart, SearchOrder:=xlByRows, ReplaceFormat:=True
End Sub

Encore une fois, je ne vois aucun avantage à utiliser une macro ici sauf à vouloir prendre tes collaborateurs pour des décérébrés ;)

PS: L'avantage de CTRL+H, c'est que l'utilisateur a la main:
il peut choisir la couleur, la police, gras souligné ou pas
(la macro ne le permet pas)
Si il se trompe dans sa saisie, il peut corriger avant d'appuyer sur Remplacer tout
(la macro ne le permet pas)
Et il peut annuler
(la macro ne le permet pas)
 
Dernière édition:

jokerfidelio

XLDnaute Occasionnel
Re

Question:
Est-ce que tu as cliqué sur le lien dans le message#9?
Si oui, tu en penses quoi?

effectivement le principe du KISS a du bon ! je comprend le principe et c'est positif
loin de moi de prendre les gens pour des décérébrés, moi même j'ai un niveau vba quasi nul et le l'avoue volontier...
j'essaye des choses simple, mais peu etre complique a mettre en place je l'avoue aussi !
c'est juste mon vecu qui parle et que meme avec des formations ou explication c'est parfois difficile de ce faire comprendre !

je vous remercie beaucoup pour le code qui fonctionne impeccablement
 

jokerfidelio

XLDnaute Occasionnel
Re


Si tu ne l'a pas dit, tu l'as pas un peu sous entendu,non?


La macro que je t'ai soumise n'est pas optimisée, elle pourrait planter.
Et dans ce cas, il fera quoi le collaborateur?

Alors que CTRL+H lui ne plantera pas ;)


j'aimerais comprendre cette partie du code, pour personnaliser le format, s'il vous plait

Code:
 With Application.ReplaceFormat.Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = -0.249946592608417
        .PatternTintAndShade = 0
    End With
 

Discussions similaires

Réponses
5
Affichages
710
Compte Supprimé 979
C

Statistiques des forums

Discussions
315 094
Messages
2 116 145
Membres
112 669
dernier inscrit
Guigui2502