Loop+condition

Bonjour à tous ,

J'ai une macro qui crée depuis un tableau un fichier pour chaque "sport". Dans le tableau il existe 15 sports, donc la boucle crée 15 fichiers.

Je souhaite lui ajouter une condition pour qu'elle crée le fichier uniquement lorsque le "sport" est "OUI" (colonne A).

J’ai essayé à plusieurs reprises des exemples de VBA mais sans succès.

Si vous me permettez, je vous transmets le fichier Excel.

En vous souhaitant une bonne réception.

Cher internaute, je vous serai reconnaissant pour le temps que vous allez ’m'accorder, je vous remercie à l'avance pour votre aide.

'Macro "SPORTS()" se réfère à tous les sports saisie de la colonne B de la feuille "PARAMETRES".
'Ensuite, elle créée et enregistre un fichier par sport dans "J9"

Sub SPORTS()

Dim no_sport As Integer

no_sport = 1   '"no_sport" var du numéro du sport, ici on l'initialise le compteur à 1.
strCheminSource = ActiveWorkbook.FullName 'nom complet du fichier modèle.

lder = ThisWorkbook.Worksheets("PARAMETRES").Range("A" & Application.Rows.Count).End(xlUp).Row  '"lder" var compte le nombre de la dernière LIGNE ECRITE (ex ici lder = 24).
dersport = lder - 9  '24 - 9 = 15 fichiers à créér.

Do While no_sport < dersport + 1   'boucle : la condition de cette boucle est "tant que le n° sport (donc 1) est inférieur à 24+1

    Range("B1").Value = Range("B" & no_sport + 9).Value 'La cellule B1 prend la valeur de la cellule B10 au 1er passage
    Range("C1").Value = Range("C" & no_sport + 9).Value '...
    Range("D1").Value = Range("D" & no_sport + 9).Value
    Range("E1").Value = Range("E" & no_sport + 9).Value

    Sheets(2).Name = Worksheets("PARAMETRES").Range("B1").Value 'chaque fichier crée, la 2è feuille prend le nom  "B1".

    Application.DisplayAlerts = False  'Désactiver l'affichage des messages d'alerte

    chemin = Range("J9").Value & "\"   '"J9": Dossier d'enregistrement.

    strfichier = chemin & "Fiche de sport - " & Range("B1").Value & ".xls"     'nomination du fichier

    ActiveWorkbook.SaveAs Filename:=strfichier, FileFormat:=xlExcel8

    no_sport = no_sport + 1  'sport est incrémenté de 1

Loop 'fin de la 1ère boucle

End Sub

12fiches-de-sports.xlsb (646.43 Ko)

Bonjour,

à tester,

no_sport = 1   '"no_sport" var du numéro du sport, ici on l'initialise le compteur à 1.
strCheminSource = ActiveWorkbook.FullName 'nom complet du fichier modèle.

lder = ThisWorkbook.Worksheets("PARAMETRES").Range("A" & Application.Rows.Count).End(xlUp).Row  '"lder" var compte le nombre de la dernière LIGNE ECRITE (ex ici lder = 24).
dersport = lder - 9  '24 - 9 = 15 fichiers à créér.

Do While no_sport < dersport + 1   'boucle : la condition de cette boucle est "tant que le n° sport (donc 1) est inférieur à 24+1

  If Range("A" & no_sport + 9).Value = "OUI" Then

    Range("B1").Value = Range("B" & no_sport + 9).Value 'La cellule B1 prend la valeur de la cellule B10 au 1er passage
    Range("C1").Value = Range("C" & no_sport + 9).Value '...
    Range("D1").Value = Range("D" & no_sport + 9).Value
    Range("E1").Value = Range("E" & no_sport + 9).Value

    Sheets(2).Name = Worksheets("PARAMETRES").Range("B1").Value 'chaque fichier crée, la 2è feuille prend le nom  "B1".

    Application.DisplayAlerts = False  'Désactiver l'affichage des messages d'alerte

    chemin = Range("J9").Value & "\"   '"J9": Dossier d'enregistrement.

    strfichier = chemin & "Fiche de sport - " & Range("B1").Value & ".xls"     'nomination du fichier

    ActiveWorkbook.SaveAs Filename:=strfichier, FileFormat:=xlExcel8

    no_sport = no_sport + 1  'sport est incrémenté de 1

  End If

Loop 'fin de la 1ère boucle

End Sub

Bonjour sabV,

J'ai ajouté les deux lignes de VBA (dans le bon ordre), mais ça n'a pas marché :

If Range("A" & no_sport + 9).Value = "OUI" Then

End If

Bonjour,

il faut mettre

End If

juste avant

no_sport = no_sport + 1

Bravo monsieur sabV, c'est magique et ça marche cette fois-ci !

Un gros merci à toi et à ta générosité

j 'suis bien contente que tout fonctionne,

merci pour ce retour et bonne continuation, @+ isabelle

Rechercher des sujets similaires à "loop condition"