InputBox, bouton annuler

  • Initiateur de la discussion Initiateur de la discussion Philippe
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Philippe

Guest
Bonjour

Grâce à Berbere, j'ai un code top concernant la recherche d'une valeur et la copie des cellules adjacentes.
Il me reste juste un petit pb mineur.
lorsque l'on fait apparaître l'inputbox, si l'utilisateur appuie sur annuler, il y a erreur. Et quelque soit les solutions que j'ai essayé, je bugge à x = InputBox('ma valeur')
D'autre part si la valeur recherchée ne se trouve pas dans la base de donnée, j'aimerais pouvoir faire apparaître un msgbox pour l'informer.

Merci par avance
Philippe

Sub CHERCHEVALEUR()
Dim x As integer, Cel As Range, Tbl As Variant, L As Integer
ReDim Tbl(1 To 3)
With Sheets('Feuil2')
If .Range('A1') = '' Then
L = 1
Else: L = .Range('A1').End(xlUp).Row + 1
End If
End With

x = InputBox('ma valeur')

With Sheets('Feuil1')
For Each Cel In .Range('B1:B' & .Range('B65536').End(xlUp).Row)
If Cel = x Then
Tbl(1) = Cel.Value: Tbl(2) = Cel.Offset(0, 1).Value: Tbl(3) = Cel.Offset(0, 2).Value
With Sheets('Feuil2')
.Range('A' & L & ':C' & L).Value = Tbl
L = L + 1
End With
End If
Next Cel
End With
End Sub
 
Pour la msgbox, tu peux faire la simple modification suivante :

Sub CHERCHEVALEUR()
Dim compteur as Integer
Dim x As integer, Cel As Range, Tbl As Variant, L As Integer

compteur = 0 'compteur va vérifier qu'il a trouvé une valeur
ReDim Tbl(1 To 3)
With Sheets('Feuil2')
If .Range('A1') = '' Then
L = 1
Else: L = .Range('A1').End(xlUp).Row + 1
End If
End With

x = InputBox('ma valeur')

With Sheets('Feuil1')
For Each Cel In .Range('B1:B' & .Range('B65536').End(xlUp).Row)
If Cel = x Then
compteur = compteur + 1
Tbl(1) = Cel.Value: Tbl(2) = Cel.Offset(0, 1).Value: Tbl(3) = Cel.Offset(0, 2).Value
With Sheets('Feuil2')
.Range('A' & L & ':C' & L).Value = Tbl
L = L + 1
End With
End If
Next Cel

If compteur = 0 Then
msgbox ('Pas de valeur')
End If

End With

End Sub

En espérant que ça t'aide,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
3
Affichages
922
Réponses
15
Affichages
779
Réponses
5
Affichages
909
Réponses
4
Affichages
754
Réponses
4
Affichages
730
Retour