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

Pas de End if ?

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

Raka

XLDnaute Occasionnel
Bonsoir.

Je ne comprends pas pourquoi mon débogueur me dit "Bloc IF sans endif.", tout en surlignant End Sub.
J'ai trous les If sur une ligne chacun, il me semblait qu'il n'y avait pas besoin de EndIf ?

Une idée rapide à première vue ?

VB:
Sub For_Each_Next_Plage()

Dim FL1 As Worksheet, Cell As Range, Plage As Range
Dim NivInitial As Long
Dim Niv As Long
Dim NivRb As Long
Dim Ligne As Long
Dim Colonne As Long
Dim Text As String


    Set FL1 = Worksheets("Autocalc")
    NivRb = 0
    NivInitial = 0
    Niv = 0
    Ligne = 2
    Colonne = 7
   
Start:

If Cell(Ligne, Colonne).Interior.Color <> RGB(200, 225, 180) Then GoTo Redo
If Cell(Ligne, Colonne).Interior.Color = RGB(200, 225, 180) Then 'si la cellule est colorée
    If Cell(Ligne, Colonne - 1).Interior.Color <> RGB(200, 225, 180) Then 'si c'est la première cellule colorée de la ligne
        If Cell(Ligne + 366, Colonne) = "YES" Then NivRb = NivRb + 1 Else If Cell(Ligne + 366, Colonne) = "NO" Then NivInitial = Colonne - 6: Niv = Colonne - 6 'si la case est en reborn OUI, on rajoute un niveau reborn sinon on définit le niveau initial non reborn
    If Cell(Ligne, Colonne - 1).Interior.Color = RGB(200, 225, 180) Then 'si c'est pas la première cellule colorée de la ligne
        If Cell(Ligne + 366, Colonne) = "YES" Then NivRb = NivRb + 1 Else If Cell(Ligne + 366, Colonne) = "NO" Then Niv = Niv + 1 'Si la case est en reborn, reborn +1, sinon niveau non reborn +1
Redo:

If NvRb = 0 Then Text = "From " & NivInitial & " to " & Niv: Cell(Ligne, 5) = Text Else If NvRb <> 0 Then Text = "From " & NivInitial & " to " & Niv & " RB 1 to " & NvRb: Cell(Ligne, 5) = Text ' affichage du résumé
Colonne = Colonne + 1
If Colonne = 47 Then Colonne = 7: Ligne = Ligne + 1: NivRb = 0: NivInitial = 0: Niv = 0
If Ligne = 355 Then GoTo VeryEnd
GoTo Start

VeryEnd:

End Sub
 
Dernière édition:
Salut, il en manque 3 ! .....
VB:
    .....
    If Cell(Ligne, Colonne).Interior.Color = RGB(200, 225, 180) Then
        If Cell(Ligne, Colonne - 1).Interior.Color <> RGB(200, 225, 180) Then
            .....
            If Cell(Ligne, Colonne - 1).Interior.Color = RGB(200, 225, 180) Then
            .....
            End If
            .....
        End If
        ......
    End If
 
Ah ! Merci, je vais tester ça. Je pensais qu'il n'y en avait pas besoin.

C'était bien ça. PAr contre, le débug me renvoie des erreurs sur la ligne "If NvRb = 0 Then Text =". Je crois que j'ai mis trop de = Text et Text = 😱
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
524
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
329
Réponses
10
Affichages
295
Réponses
2
Affichages
162
Réponses
3
Affichages
455
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…