SI CELLULE VIDE ALORS PASSER À LA SUIVANTE

Résolu
Texcel Messages postés 8 Statut Membre -  
Texcel Messages postés 8 Statut Membre -
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

  1. Texcel Messages postés 8 Statut Membre 1
     
    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
    1
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Donc, vous voulez faire une copie de la feuille "mise en page" pour chaque article de la feuille "phases et budgets" en renomment cette feuille du nom de l'article.
      0
    2. Texcel Messages postés 8 Statut Membre 1
       
      Exactement.
      0
    3. Texcel Messages postés 8 Statut Membre 1
       
      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
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Texcel Messages postés 8 Statut Membre
       
      Re,

      Ok, je vous fais ca
      0
    5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Texcel Messages postés 8 Statut Membre
       
      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
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
    1. Texcel Messages postés 8 Statut Membre 1
       
      Excellent !! Merci du coup de main
      0
    2. Texcel Messages postés 8 Statut Membre 1
       
      serait-il possible d'intégrer la copie de la mise en page d'un autre feuille que "phases et budgets".
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Texcel Messages postés 8 Statut Membre
         
        Bonjour,

        Comprends pas tout, vous pouvez expliquer
        0