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

gimli

XLDnaute Occasionnel
Bonjour,

j'ai un soucis que je n'avais encore jamais rencontré, j'ai deux FOR imbriqués et un des NEXT n'est pas lu. Ce qui fausse le résultat.

voici tout le code de mon bouton:

Private Sub CommandButton1_Click()
Dim NbSitesIC, NbLignesIncMaj As Integer


NbSitesIC = 0
NbLignesIncMaj = Sheets("Incidents majeurs (ext)").Cells(65536, 3).End(xlUp).Row

'on va rajouter les incidents collectifs à la page "Incidents majeurs" à la suite de ceux déja présents.
For num1 = 2 To 9
For num2 = NbLignesIncMaj + 1 To 50

Chaine = Sheets("Inc.Collectifs").Range("E" & num2).Value

For i = 1 To Len(Chaine)

If Mid(Chaine, i, 1) = ";" Then

NbSitesIC = NbSitesIC + 1 'le +1 est pour l'incrémentation

End If

Next i

Sheets("Incidents majeurs (ext)").Range("A" & num1).Value = Sheets("Inc.Collectifs").Range("C" & num2).Value
Sheets("Incidents majeurs (ext)").Range("B" & num1).Value = Sheets("Inc.Collectifs").Range("D" & num2).Value
Sheets("Incidents majeurs (ext)").Range("C" & num1).Value = Sheets("Inc.collectifs").Range("E" & num2).Value
Sheets("Incidents majeurs (ext)").Range("D" & num1).Value = Sheets("Inc.Collectifs").Range("F" & num2).Value
Sheets("Incidents majeurs (ext)").Range("E" & num1).Value = Sheets("Inc.Collectifs").Range("G" & num2).Value
Sheets("Incidents majeurs (ext)").Range("F" & num1).Value = Sheets("Inc.Collectifs").Range("H" & num2).Value
Sheets("Incidents majeurs (ext)").Range("G" & num1).Value = Sheets("Inc.Collectifs").Range("I" & num2).Value
Sheets("Incidents majeurs (ext)").Range("H" & num1).Value = Sheets("Inc.Collectifs").Range("K" & num2).Value
Sheets("Incidents majeurs (ext)").Range("J" & num1).Value = Sheets("Inc.Collectifs").Range("M" & num2).Value
Sheets("Incidents majeurs (ext)").Range("L" & num1).Value = NbSitesIC + 1
DureeTotaleHeure = Sheets("Incidents majeurs (ext)").Range("H" & num1).Value * Sheets("Incidents majeurs (ext)").Range("L" & num1).Value
Sheets("Incidents majeurs (ext)").Range("M" & num1).Value = DureeTotaleHeure
Sheets("Incidents majeurs (ext)").Range("N" & num1).Value = DureeTotaleHeure
NbSitesIC = 0

Next num2

Next num1

End Sub

En effet, après test au pas à pas (avec F8) je vois bien que le Next num2 n'est pas lu. Sauriez-vous pourquoi ?

Merci d'avance

Bonne journée à tous 🙂

Gimli
 
Re : NEXT non lu

Apparement non çamarchepas. J'ai cru que c'était le cas comme toi et j'ai mis un msgbox juste après le "For num2 = NbLignesIncMaj + 1 To 50". Il s'est bien affiché quelques centaines de fois, j'en ai usé ma touche Entrée 😀
 
Re : NEXT non lu

Re,
je me suis trompé dans mon code, il faut inverser les boucles num1 et num2 .
Je cherche en fait a copier les lignes de "Inc.Collectifs" à la suite de celles de la page "Incidents majeurs (ext)".
 
Re : NEXT non lu

Bonjour à tous,
Pas certain du résultat attendu .Donc a tester.
Code:
Private Sub CommandButton1_Click()
Dim NbSitesIC, NbLignesIncMaj, num1, num2 As Integer
NbSitesIC = 0
With Sheets("Incidents majeurs (ext)")
NbLignesIncMaj = .Cells(65536, 3).End(xlUp).Row
For num1 = 2 To 9
    num2 = .Cells(65536, 3).End(xlUp).Row
    Chaine = Sheets("Inc.Collectifs").Range("E" & num2).Value
        For i = 1 To Len(Chaine)
            If Mid(Chaine, i, 1) = ";" Then NbSitesIC = NbSitesIC + 1
        Next i
    .Range("A" & num1).Value = Sheets("Inc.Collectifs").Range("C" & num2).Value
    .Range("B" & num1).Value = Sheets("Inc.Collectifs").Range("D" & num2).Value
    .Range("C" & num1).Value = Sheets("Inc.collectifs").Range("E" & num2).Value
    .Range("D" & num1).Value = Sheets("Inc.Collectifs").Range("F" & num2).Value
    .Range("E" & num1).Value = Sheets("Inc.Collectifs").Range("G" & num2).Value
    .Range("F" & num1).Value = Sheets("Inc.Collectifs").Range("H" & num2).Value
    .Range("G" & num1).Value = Sheets("Inc.Collectifs").Range("I" & num2).Value
    .Range("H" & num1).Value = Sheets("Inc.Collectifs").Range("K" & num2).Value
    .Range("J" & num1).Value = Sheets("Inc.Collectifs").Range("M" & num2).Value
    .Range("L" & num1).Value = NbSitesIC + 1
    DureeTotaleHeure = .Range("H" & num1).Value * .Range("L" & num1).Value
    .Range("M" & num1).Value = DureeTotaleHeure
    .Range("N" & num1).Value = DureeTotaleHeure
    NbSitesIC = 0
Next num1
End With
End Sub
Cordialement
 
Re : NEXT non lu

Bonjour a tous,

effectivement efgé, ta macro ne répond pas à mes attentes, mais je te remercie de m'aider.
Camarchepas, ta macro est parfaite, c'est exactement le résultat que j'attendais, merci beaucoup !
Merci à tous de m'avoir aidé 🙂

Bonne journée à vous

Gimli
 
- 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

Réponses
4
Affichages
720
Réponses
2
Affichages
137
Réponses
5
Affichages
890
Réponses
4
Affichages
751
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
8
Affichages
378
Retour