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

Exclure Lignes Vides d'une Marco

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

L

le_bryce

Guest
Bonjour à tous et bravo pour ce forum qui est vraiment génial pour trouver des idées !!

Voilà mon souci :
j'ai une macro qui me sert à créer des onglets à partir d'une liste sur le premier onglet et d'un modèle à partir d'un 2ème onglet
Dans une itération "for" sur l'ensemble des lignes d'une colonne, les onglets sont crées correctement jusqu'à ce qu'il y ait une ligne vide dans l'onglet liste
Par contre s'il y a une ligne vide puis que la liste reprend après celle-ci ça plante ....

Voilà le code que j'ai trouvé :
J'ai un peu de mal à comprendre la syntaxe de la ligne
"For i = 3 To [B65536].End(xlUp).Row"

Sub Macro1()
Application.DisplayAlerts = False
For i = Sheets.Count To 3 Step -1
Sheets(i).Delete
Next i
Application.DisplayAlerts = True


Sheets("liste").Select
For i = 3 To [B65536].End(xlUp).Row
nom = Range("B" & i)
age = Range("C" & i)
taille = Range("D" & i)
Sheets("modèle").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = nom
With Sheets(nom)
.Range("B2") = nom
.Range("C4") = age
.Range("C5") = taille
End With
Sheets("liste").Select
Next
End Sub


Merci pour vos réponses.
 
Re : Exclure Lignes Vides d'une Marco

Bonjour le_bryce, et bienvenue sur le forum,

Il te faut tester si la variable 'nom' contient une valeur.
Tu peux donc essayer comme ceci :

Code:
Sub Macro1()
Application.DisplayAlerts = False
For i = Sheets.Count To 3 Step -1
Sheets(i).Delete
Next i
Application.DisplayAlerts = True


Sheets("liste").Select
For i = 3 To [B65536].End(xlUp).Row
nom = Range("B" & i)
[COLOR="Red"][B]If Not nom = "" Then[/B][/COLOR]
[INDENT]age = Range("C" & i)
taille = Range("D" & i)
Sheets("modèle").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = nom
With Sheets(nom)
.Range("B2") = nom
.Range("C4") = age
.Range("C5") = taille
End With[/INDENT]
[COLOR="Red"][B]End If[/B][/COLOR]
Sheets("liste").Select
Next
End Sub

Par ailleurs, l'instruction

Code:
[B65536].End(xlUp).Row

remonte le tableau depuis la dernière cellule de la colonne B jusqu'à la 1ère cellule non vide trouvée et en extrait le n° de ligne de cette cellule. Me suis-je bien "fait compris" ?

Espérant avoir répondu.

Cordialement.
 
Re : Exclure Lignes Vides d'une Marco

Merci pour ta réponse ultra-rapide Papou-net

Ca marche, j'ai juste déplacé l'instruction "Sheets("liste").Select"
dans la boucle for car sinon ça prenait les valeurs dans l'onglet créé au lieu de l'onglet liste.

Pour le "[B65536].End(xlUp).Row" j'ai pigé 😉
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
774
Réponses
5
Affichages
905
Réponses
10
Affichages
659
Réponses
10
Affichages
789
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…