SI CELLULE VIDE ALORS PASSER À LA SUIVANTE [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017
-
Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017
-
Bonjour,

voici ma macro, elle génère un onglet pour chaque valeur contenu dans la liste "article" et lui assigne le nom de la valeur de la cellule

Sub créer_feuilles()
Dim S As Object
Dim DL As Integer
Dim TC As Variant
Dim I As Integer
Dim NO As Object

Set S = Sheets("Phases et budgets")
DL = S.Cells(Application.Rows.Count, 3).End(xlUp).Row
TC = S.Range("article")
For I = 3 To UBound(TC, 1)
On Error Resume Next
Set NO = Sheets(TC(I, 1))
If Err <> 0 Then
Err.Clear
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = TC(I, 1)
End If
On Error GoTo 0
Next I
End Sub


Ma problématique est que quand elle rencontre une cellule vide, la macro donne ouvre une feuille et lui assigne un numéro séquentiel. Cela donne donc plusieurs feuille qui n'ont pas besoin d'être.

J'ai tenté de corriger le problème avec if cell.value="" then goto next I
mais sans succès

Pourriez-vous m'aider

2 réponses

Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
1208
Bonjour,

Sub créer_feuilles()
    Dim S As Object
    Dim DL As Integer
    Dim TC As Variant
    Dim I As Integer
    Dim NO As Object

    Set S = Sheets("Phases et budgets")
    DL = S.Cells(Application.Rows.Count, 3).End(xlUp).Row
    TC = S.Range("article")
    Nb = UBound(TC, 1)
    For I = 3 To Nb
        If TC(I, 1) <> "" Then      'non vide
            On Error Resume Next
            Set NO = Sheets(TC(I, 1))
            If Err <> 0 Then
                Err.Clear
                Sheets.Add after:=Sheets(Sheets.Count)
                ActiveSheet.Name = TC(I, 1)
            End If
        End If
        On Error GoTo 0
    Next I
End Sub
Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

Excellent !! Merci du coup de main
Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

serait-il possible d'intégrer la copie de la mise en page d'un autre feuille que "phases et budgets".
f894009
Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
1208 > Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

Bonjour,

Comprends pas tout, vous pouvez expliquer
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

Bonjour,

sur la feuille "mise en page" il y a certaines cellules encandrées, un logo etc.
J'aimerais que cette mise en page se copie sur toutes les nouvelles créées en fonction de TC
Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

Exactement.
f894009
Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
1208 > Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

Re,

Ok, je vous fais ca
Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

Voici la macro pour copier la mise en page, mais il y a un bug que je n'arrive pas à mettre le doight dessus

Sub copie_mise_en_forme()

Sheets("mise en page").Select
Cells.Select
Selection.Copy
For I = 4 To Sheets.Count
Sheets(I).Select
Cells.Select
ActiveSheet.Paste
Next I

End Sub
f894009
Messages postés
14949
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 janvier 2020
1208 > Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

Re,

ci-dessous le code qui correspond a votre reponse a la suite de
mon post 6: f894009 - 18 janv. 2017 à 16:51

Sub créer_feuilles()
    Dim S As Object
    Dim DL As Integer
    Dim TC As Variant
    Dim I As Integer
    Dim NO As Object

    Set S = Sheets("Phases et budgets")
    DL = S.Cells(Application.Rows.Count, 3).End(xlUp).Row
    TC = S.Range("article")
    Nb = UBound(TC, 1)
    For I = 3 To Nb
        If TC(I, 1) <> "" Then      'non vide
            On Error Resume Next
            Set NO = Sheets(TC(I, 1))
            If Err <> 0 Then
                Err.Clear
                Sheets("mise en page").Copy After:=Sheets(Sheets.Count)
                ActiveSheet.Name = TC(I, 1)
            End If
        End If
        On Error GoTo 0
    Next I
End Sub
Texcel
Messages postés
8
Date d'inscription
mardi 17 janvier 2017
Statut
Membre
Dernière intervention
18 janvier 2017

Quand l'évidence saute aux yeux.

Merci du coup de main f894009