Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

msgbox intempestif !

  • 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 à tous

comme vous pourrez le voir ds le code ci-dessous, je récupère une valeur ds la feuil1 et je copie les cellules adjacentes correspondant à cette valeur ds la feuille2. Bon jusque là tout va bien.
Comme cette valeur peut très bien ne pas se trouver ds ma base de donnée, j'aimerais qu'un msgbox le signale.

Mon problème, c'est que je me mélange ds les boucles du code et que ce msgbox apparaît là ou je ne voudrais pasqu'i apparaisse

Je joins ci-dessous le code, en espérant que l'un de vous trouvera la solution
Merci par avance
Philippe


Code:
Private Sub CommandButton1_Click()
Dim X As String, Cel As Range, Tbl As Variant, L As Integer
ReDim Tbl(1 To 4)
With Sheets('Feuil2')
.Range('A:F').ClearContents
If .Range('A1') = '' Then
L = 1
Else: L = .Range('A1').End(xlUp).Row + 1
End If
End With

X = TextBox1.Value
If X = '' Then
 MsgBox ('Vous n'avez pas rentré de valeur')
 ElseIf X > 12 Then
 MsgBox ('veuillez rentrer un chiffre de 1 à 12')
  End If
       
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: Tbl(4) = Cel.Offset(0, 3).Value

With Sheets('Feuil2')
'Copie la valeur x en A et copie les cellules adjacentes de la feuille 1 jusqu'en D
.Range('A' & L & ':D' & L).Value = Tbl
L = L + 1
End With
End If
Next Cel
End With
End Sub
 
Salut Philippe,

Je ne t'apporte pas de solution cependant quelque chose me parait bizarre dans la première partie de ton code. En effet, tu mes ceci :

Code:
With Sheets('Feuil2')
.Range('A:F').ClearContents
If .Range('A1') = '' Then
L = 1
Else: L = .Range('A1').End(xlUp).Row + 1
End If
End With

Ce qui est bizzare, c'est que tu effaces les données des colonnes A à F, puis tu mes une condition sur la cellule A1 qui est forcément vide, non ???

Pour le reste, je ne sais pas tres bien a quel endroit tu veux que ta msgbox apparaisse, donc difficile de te repondre, peut etre qu'avec une PJ ce serait plus facile.

@+
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…