problème de code pour listbox

  • Initiateur de la discussion Initiateur de la discussion sylvain
  • 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 !

S

sylvain

Guest
bonjour le forum,

J'aimerais insérer un message d'alerte dans une listbox dans le cas où l'utilisateur ne sélectionne pas de fichier. Pour cela, j'ai créer une condition mais je ne comprends pas, elle ne marche pas : le code concernant cette condition s'exécute tout le temps : trop bizarre. Voici le code ci dessous (en couleur pour le code qui ne marche pas)

merci du coup de main

sylvain

code :


Private Sub CommandButton1_Click()
Dim f As String
Dim i As Integer

If ListBox1.Selected(i) = False Then
MsgBox 'Veuillez choisir une sauvegarde avant de valider'
Exit Sub ' si tu veux arreter le déroulement de la macro
End If


For i = 0 To ListBox1.ListCount - 1

If ListBox1.Selected(i) = True Then f = ListBox1.List(i)

Next i

p = 'c:\\simoporc\\sauvegarde\\'
'f = 'sauvegarde.xls'

s = 'bdd'
u = 'bdd2'
T = 'bdd3'
v = 'bdd4'

With UserForm1.ProgressBar1
.Visible = True
.Min = 0
.Max = 8

Application.ScreenUpdating = False

Sheets('bdd').Activate

For r = 5 To 11
For c = 3 To 256
a = Cells(r, c).Address
Cells(r, c) = RecupValeur(p, f, s, a)
Next c
Next r
Application.ScreenUpdating = True

Sheets('menu').Activate


.Value = 2
DoEvents
End With

With UserForm1.ProgressBar1
.Visible = True
.Min = 0
.Max = 8

Application.ScreenUpdating = False

Sheets('bdd2').Activate

For r = 5 To 11
For c = 3 To 256
a = Cells(r, c).Address
Cells(r, c) = RecupValeur(p, f, u, a)
Next c
Next r

Application.ScreenUpdating = True

Sheets('menu').Activate

.Value = 4
DoEvents
End With

With UserForm1.ProgressBar1
.Visible = True
.Min = 0
.Max = 8

Application.ScreenUpdating = False


Sheets('bdd3').Activate

For r = 5 To 11
For c = 3 To 256
a = Cells(r, c).Address
Cells(r, c) = RecupValeur(p, f, T, a)
Next c
Next r
Application.ScreenUpdating = True

Sheets('menu').Activate


.Value = 6
DoEvents
End With

With UserForm1.ProgressBar1
.Visible = True
.Min = 0
.Max = 8

Application.ScreenUpdating = False


Sheets('bdd4').Activate

For r = 5 To 11
For c = 3 To 256
a = Cells(r, c).Address
Cells(r, c) = RecupValeur(p, f, v, a)
Next c
Next r
Application.ScreenUpdating = True

Sheets('menu').Activate


.Value = 8
DoEvents
End With



Unload Me

Worksheets('menu').Cells(15, 7).Value = 1

Call macromodifier

MsgBox ('L'opération s'est terminée avec succès')



End Sub
 
Bonjour Sylvain, bonjour le forum,

Je te propose de commencer ton code ainsi :


Private Sub CommandButton1_Click()
Dim f As String
Dim i As Integer

For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
f = ListBox1.List(i)
GoTo suite
End If
Next i

MsgBox 'Veuillez choisir une sauvegarde avant de valider'
Exit Sub ' si tu veux arreter le déroulement de la macro

suite:

'le reste de ton code
End Sub
 
- 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

Réponses
5
Affichages
708
Réponses
3
Affichages
835
Réponses
35
Affichages
2 K
Retour