Boucle qui s'arrête trop tôt, à compléter

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 !

gilles72

XLDnaute Junior
Bonjour,
je joins un fichier qui comporte une macro de boucle FOR EACH....next
elle fonctionne mais elle s'arrête trop tôt pour continuer le balayage, tel que je le souhaite.
Je me demande si elle ne devrait pas être incluse dans un autre boucle (genre DO...LOOP)
mais je suis trop faible en VBA pour trouver l'astuce.
Le fichier est en XLS(2003) mais je peux travailler sur un autre PC en 2007.

Si kekun peut m'éclairer sur le sujet, un grand merci
gilles72
 

Pièces jointes

J'ai rajouté le code en gras
une boucle de la colonne 41 (AO à la colonne 59 BG) avec un step de 2
colonne est la transposition en lettre du numéro de colonne
a+
Code:
Sub TriEquipe() '
  Dim Cal As Range, col As Range, cell As Range, a As Range, z As Range, som As Range, Ligne As Long, no As Integer, iLigne As Integer

Sheets("équipe").Select
  Set Cal = Range("Aj7:Aj500")
  col1 = 41
For i = col1 To 59 Step 2
colonne = Split(Columns(i).Address(ColumnAbsolute:=False), ":")(1)
  For Each cell In Cal
    Set z = cell.Offset(0, 6)
    Set a = cell.Offset(0, 5)
    Set som = Range(colonne & 4)
    Set col = cell.Offset(0, 6)
    If cell.Offset(0, -1) = Range("ai5").Value And som.Value = 3 And AO2 <> 3 And AO2 <> 3 Then
        z = 1
        a = cell.Offset(0, -1) & " _" & 4
  '      som = som.Offset(0, 2)'marche pas
    '    MsgBox som
    End If
     If som = 4 Then
         z.Select
        ActiveCell.EntireColumn.Select
           Selection.ClearContents
   
        Exit For
     End If

    If cell.Offset(0, -1) = Range("ai5").Value And som.Value = 2 Then
        z = 1
        a = cell.Offset(0, -1) & " _" & 3
    End If
   
    If cell.Offset(0, -1) = Range("ai5").Value And som.Value = 1 Then
        z = 1
        a = cell.Offset(0, -1) & " _" & 2
    End If
   
    If som.Value = 0 Then
        Range("ai5").Value = cell.Offset(0, -1)
        z = 1
        a = cell.Offset(0, -1) & " _" & 1
    End If


'Next


   Next cell
'   Stop
Next i
End Sub
 
Merci à toi, CHALET53
je l'ai ouvert sur XL2003, voila ce que j'obtiens:
tout s'inscrit en colonne AO ...la 2ème équipe devrait s'inscrire en col AQ et la 3ème en col AS.....
et la boucle écrase les premières données
De plus la boucle ne s'arrête pas...
je ne l'ai pas essayé en xl2007 (PC non dispo en ce moment)

je ne pourrai pas me remettre dessus avant 15j , car je m'absente.
Merci encore à toi.
à+
gilles72
 
j'ai seulement proposé une boucle pour traiter de 2 en 2 colonnes de la colonne AO à la colonne BG
J'ai modifié la valeur suivante
Set som = Range(colonne & 4)
sachant que colonne est une variable qui contient le nom de la colonne : AO, AQ, .... jusqu'à BG

Je n'ai pas touché au programme dans la boucle For each cell in Cal

Il y a sans doute des choses à modifier

a+
 
- 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

M
Réponses
4
Affichages
2 K
mathieu42400
M
X
  • Question Question
Réponses
4
Affichages
938
xszma
X
L
Réponses
12
Affichages
1 K
louloubru
L
M
Réponses
13
Affichages
5 K
M
R
Réponses
13
Affichages
4 K
RomaneK
R
F
Réponses
15
Affichages
4 K
C
Réponses
9
Affichages
2 K
cbenali
C
Retour