Cellule avec Variable VBA

mexitinoco

XLDnaute Nouveau
Bonjour à tous,

Voilà je cherche à faire une boucle sur VBA qui permettrait de détecter si une cellule (A1 par exemple) de la première feuille de classeur est vide, si elle est pleine, alors Excel créé un nouvel onglet puis il passe à la cellule du dessous : A2. Si celle-ci contient quelque chose, alors un nouvel onglet est créé, et ainsi de suite jusqu'à ce qu'Excel tombe sur une cellule vide.

J'ai donc écris le code ci-dessous mais il ne marche pas et je ne vois pas ce qui cloche :

Sub test()
Sheets(1).Select
Dim A As Integer, B As Integer
A = 1
B = 1

While Not IsEmpty(Cells(A, 12))
Sheets.Add After:=Sheets(1)
Sheets(2).Name = "FORMAT B"
A = A + 1
B = B + 1
Wend
End Sub

Si vous avez des propositions je suis preneur !
 

youky(BJ)

XLDnaute Barbatruc
Bonjour Mexitinoco,
Plutôt comme ceci si j'ai compris le besoin.
Bruno
VB:
Sub test()
For k = 1 To Sheets.Count
If Sheets(k).Cells(k, 1) = "" Then Sheets(k).Select: Exit Sub
Next
 Sheets.Add After:=Sheets(Sheets.Count)
 ActiveSheet.Name = "FORMAT" & k
End Sub
 

mexitinoco

XLDnaute Nouveau
Bonjour Mexitinoco,
Plutôt comme ceci si j'ai compris le besoin.
Bruno
VB:
Sub test()
For k = 1 To Sheets.Count
If Sheets(k).Cells(k, 1) = "" Then Sheets(k).Select: Exit Sub
Next
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "FORMAT" & k
End Sub
Bonjour Bruno,
Merci pour ton aide,

Ce n'est pas exactement ça je pense (désolé je suis novice pour lire du code), enfin en tout cas le résultat ne donne pas ce que je veux.

L'idée c'est que je veux insérer un tableau dans ma première feuille de classeur, et que je veux créer une nouvelle feuille de classeur par ligne dans le tableau (si le tableau contient 5 lignes, ouvrir 5 onglets, + l'onglet de début où il y a le tableau donc).
C'est pour ça que je voulais détecter si la case A5 admettons (celle qui contiendra le début de la première ligne du tableau) est vide ou non, si elle n'est pas vide, un nouvel onglet se créé. Ensuite on passe à la ligne du dessous : la case A6, si elle n'est pas vide on ouvre un nouvel onglet, et ainsi de suite jusqu'à tomber sur une case vide (et donc arriver à la fin du tableau).
 

mexitinoco

XLDnaute Nouveau
C'est bon j'ai trouvé ! Après plusieurs heures de recherche ^^

Tout bêtement il fallait que je rajoute "revenir à l'onglet principal (celui où il y a le tableau)" avant la fin de la boucle, parce que sinon il restait sur la nouvelle feuille qui venait de se créer et donc forcément toutes les cases état vides, la boucle s'arrêtait...

Sub test()
Dim A As Integer
A = 12

Do While Not IsEmpty(Cells(A, 1))
Sheets.Add
A = A + 1
Sheets("FORMATS").Select
Loop

End Sub

Enfin merci en tout cas de ton retour Bruno
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata