Aide pour bouton d'arrêt d'une macro

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

B

bagerard

Guest
Bonjour à tous,

Voilà, j'ai écrit une macro afin de simplifier au maximum la saisie de relevés dans un fichier excel (plus de 200 lignes et 10 colonnes à remplir par ligne)
Le voici:

Sub saisie()
Dim numCol As Long
Dim numLig As Long
Dim strSaisie As String
Dim nomfen As String

' Boucle sur ligne
For numLig = 2 To ActiveCell.SpecialCells(xlCellTypeLastCell).Row


' Boucle de la colonne A à J
For numCol = 11 To 24
' Pas de question pour certaines colonnes
If numCol <> 15 Then
If numCol <> 16 Then
If numCol <> 19 Then
If numCol <> 20 Then
If numCol <> 23 Then

nomfen = Cells(numLig, 4) & " " & Cells(numLig, 5) & " " & Cells(numLig, 2) & " " & Cells(numLig, 3)
strSaisie = InputBox(Cells(1, numCol) & " ?", nomfen)
' Si saisie effectuée
If strSaisie <> "" Then

Cells(numLig, numCol).Value = strSaisie
End If
End If
End If
End If
End If
End If
Next numCol


Select Case MsgBox("Continuer de saisir ?", vbYesNo, " ")
Case vbOK
Next numLig

Case vbNo
Exit Sub

End Select

End Sub

evidemment s'il fonctionnait, je ne vous embêterais pas avec ça.
Mon souci (à part être une nullité en vba 😕) est que je voudrais qu'excel me propose d'arrêter ou de poursuivre la saisie avant de changer de ligne.
En espérant avoir été assez clair.
 
Re : Aide pour bouton d'arrêt d'une macro

Bonjour

remplace

Select Case MsgBox("Continuer de saisir ?", vbYesNo, " ")
Case vbOK
Next numLig

Case vbNo
Exit Sub

End Select

par
if MsgBox("Continuer de saisir ?", vbYesNo, " ")=vbno then exit sub
Next numLig
 
Re : Aide pour bouton d'arrêt d'une macro

Bonjour,
Avec ce que je comprends, peut-être
Code:
Sub Saisie()
Dim NumCol As Long
Dim NumLig As Long
Dim StrSaisie As String
Dim Nomfen As String

'Boucle sur ligne
For NumLig = 2 To ActiveCell.SpecialCells(xlCellTypeLastCell).Row
    'Boucle de la colonne A à J
    For NumCol = 11 To 24
        'Pas de question pour certaines colonnes ???
        Select Case NumCol
            Case 11 To 14, 17 To 18, 21 To 22, 24
                Nomfen = Cells(NumLig, 4) & " " & Cells(NumLig, 5) & _
                " " & Cells(NumLig, 2) & " " & Cells(NumLig, 3)
                StrSaisie = InputBox(Cells(1, NumCol) & " ?", Nomfen)
                    'Si saisie effectuée
                    If StrSaisie <> "" Then
                        Cells(NumLig, NumCol).Value = StrSaisie
                    End If
        End Select
    Next NumCol
    Q = MsgBox("Continuer de saisir ?", vbYesNo, " ")
        If Q <> 6 Then Exit Sub
Next NumLig

End Sub
Edit : j'ai mis des points d'interrogation parce si les colonnes <> de celles ennumérées, faut-il saisir qq chose dans ces colonnes ? D'après ta macro, la réponse serait non
Sinon il faudrait rajouter
Code:
'...
Case Else
'...
Bonjour Pascal

A+
kjin
 
Dernière édition:
- 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
4
Affichages
743
Réponses
15
Affichages
827
Réponses
5
Affichages
931
Retour