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

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

  • Classement équipes.xls
    135 KB · Affichages: 51

CHALET53

XLDnaute Barbatruc
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
 

gilles72

XLDnaute Junior
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
 

CHALET53

XLDnaute Barbatruc
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+
 

CHALET53

XLDnaute Barbatruc
Bonjour,

Un essai si j'ai bien compris
J'ai procédé à quelques modifications dans la présentation de la feuille et dans le programme
a+
 

Pièces jointes

  • Gilles72 Classement équipes.xls
    177.5 KB · Affichages: 26
Dernière édition:

gilles72

XLDnaute Junior
Bonjour CHALET53
J'ai retrouvé mon PC et j'en profite pour te remercier, ainsi que les autres contributeurs.
Ton code m'a bien aidé.
Je l'ai adapté pour parvenir à ce que je souhaitais .
Je te joins le fichier avec les kek modifs dans le code VBA
Merci encore
gilles72
 

Pièces jointes

  • Classement équipes2.xls
    184.5 KB · Affichages: 24

Discussions similaires

Réponses
3
Affichages
283

Statistiques des forums

Discussions
312 145
Messages
2 085 762
Membres
102 966
dernier inscrit
InitialPP