IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

suprimer un listobject du sheets avant de le reconstruire


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut suprimer un listobject du sheets avant de le reconstruire
    bonjour

    comme le titre l'indique je souhaiterais supprime litéralement un tableau structuré avant de le reconstruire ainsi qu'enlever tout modification couleur ou format dans les cellules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub test()
        entete = Array("toto", "titi", "riri", "fifi", "loulou", "truc", "bidule", "machin", "chose")
        new_nom = "pannel1"
        nbligne = 6
        Themes = "truc bidule" & Date & "/" & "machin"
        With ActiveSheet
            .Cells(Rows.Count, 1).End(xlUp).Offset(1) = Themes
            '************************************************************************************
            'ici je voudrais le supprimer si il existe ainsi que tout mise en couleur ou format sur la plage occupée par le tableau
            ' tout a partir du themes
            '************************************************************************************
            .ListObjects.Add(xlSrcRange, .Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(6, UBound(entete) + 1), , xlNo).Name = new_nom
            .ListObjects("pannel1").TableStyle = "TableStyleMedium11"
            With Range("pannel1[#Headers]")
                .Value = entete
                .Interior.Color = RGB(0, 100, 0)
                .Font.Color = vbWhite
            End With
            'model d'acces a une colonne :
            'MsgBox Range(new_nom & "[titi]").Address
        End With
    End Sub
    quelqu'un sait faire ca ?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Bonjour,

    D'après l'aide


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub DeList()
     ActiveWorkbook.Worksheets("feuil1").ListObjects(1).Unlist
    End Sub
    Boisgontier

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    merci jacques
    c'est pas aussi simple
    c'est de ma faute ,j'ai oublié de donner des renseignements

    cette sub est multiplié par X avec new_nom et themes etc.. qui change a chaques fois

    ce que je voudrais au final c'est supprimer carrément les lignes car je ne refait pas toujours les tableaux dans l'ordre et il y en a 8
    en effet quand je fait ce tableau je peux en faire un ou plusieur apres et revenir sur celui la pour le supprimer ligne comprise afin d'eviter d'avoir des plage vides
    en gros il faudrait que je cerne la derniere cellule du tableau et la cellule du themes et cette plage.entirerow doit etre literalement supprimée
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Supprime complétement le tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub DeList()
     Set temp = ActiveWorkbook.Worksheets("feuil1").ListObjects(1).Range
     ActiveWorkbook.Worksheets("feuil1").ListObjects(1).Unlist
     temp.Clear
    End Sub
    Boisgontier

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    jacques je peux pas chopper les listobject par leur index il sont pas toujours dans le meme ordre du justement a des suppressions anterieurs

    j'ai essayé d'adapter mais ca fonctionne pas avec les noms

    en gros je doit pouvoir lancer la sub tabl1 36 fois et n'avoir q'un tableau sur le sheet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub tab1()
        Dim entete, new_nom$, themes, lignes
        entete = Array("toto", "titi", "riri", "fifi", "loulou", "truc", "bidule", "machin", "chose")
        new_nom = "pannel1"
        lignes = 6
        themes = "truc bidule" & Date & "/" & "machin"
        create_tableau entete, new_nom, themes, lignes
    End Sub
     
    Function create_tableau(entete, new_nom As String, themes As String, lignes As Long)
        With ActiveSheet
            '************************************************************************************
            'ici je voudrais le supprimer si il existe ainsi que tout mise en couleur ou format sur la plage occupée par le tableau
            Set temp = Range(new_nom & "[#All]")
            If Not temp Is Nothing Then
                '.ListObjects(new_nom).Unlist
                Union(temp, temp.Offset(-2)).EntireRow.Delete
            End If
            '************************************************************************************
            .Cells(Rows.Count, 1).End(xlUp).Offset(1) = themes
            .ListObjects.Add(xlSrcRange, .Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(lignes, UBound(entete) + 1), , xlNo).Name = new_nom
            .ListObjects(new_nom).TableStyle = "TableStyleMedium11"
            With Range(new_nom & "[#Headers]")
                .Value = entete
                .Interior.Color = RGB(0, 100, 0)
                .Font.Color = vbWhite
            End With
            'model d'acces a une colonne :
            'MsgBox Range(new_nom & "[titi]").Address
        End With
    End Function
    [COTE]les lignes doivent etre supprimées et non clear imperativement [/COTE]
    et le tableau doit etre determiné par sont nom et non son index car le panel1 n'aura pas toujours le meme index
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    Je suppose que tu connais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub NomsTableauxDynamiques()
      For s = 1 To Sheets.Count
        For Each n In Sheets(s).ListObjects
           tmp = tmp & "/" & n.Name
        Next n
      Next s
      MsgBox tmp
    End Sub
    Boisgontier

  7. #7
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je te laisse gérer la suppression de ton "themes"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub tab1()
        Dim entete, new_nom$, themes, lignes
        entete = Array("toto", "titi", "riri", "fifi", "loulou", "truc", "bidule", "machin", "chose")
        new_nom = "Tableaeu1"
        lignes = 6
        themes = "truc bidule" & Date & "/" & "machin"
        create_tableau entete, new_nom, themes, lignes
    End Sub
     
    Function create_tableau(entete, new_nom As String, ByVal themes As String, ByVal lignes As Long)
    Dim Temp As ListObject
        With ActiveSheet
            '************************************************************************************
            'ici je voudrais le supprimer si il existe ainsi que tout mise en couleur ou format sur la plage occupée par le tableau
            On Error Resume Next
                Set Temp = .ListObjects(new_nom).Range
            On Error GoTo 0
            If Not Temp Is Nothing Then Temp.EntireRow.Delete
            '************************************************************************************
            .Cells(Rows.Count, 1).End(xlUp).Offset(1) = themes
            With .ListObjects.Add(xlSrcRange, .Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(lignes, UBound(entete) + 1), , xlNo)
                .Name = new_nom
                .TableStyle = "TableStyleMedium11"
                With .HeaderRowRange
                    .Value = entete
                    .Interior.Color = RGB(0, 100, 0)
                    .Font.Color = vbWhite
                End With
            End With
        End With
    End Function

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    et oui je m'en doutais c'est soit une boucle sur les tableau soit une gestion d'erreur
    pour la suppression de la ligne themes
    ca devraitt etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Union(temp, temp.Offset(-2)).EntireRow.Delete' puisqu'a la creation le tableau est posé dans l'offset(2)
    je vais tester tout ca
    merci
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    @Joe
    une demo parle mieux que les mots
    pas de message donc ca match pas pourtant le tableau y est bien et porte bien le bon nom
    Nom : demo3.gif
Affichages : 860
Taille : 699,9 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Je ne vois pas le nom de ton tableau, ni n'arrive à lire ton code

    de mon côté, ça fonctionnait très bien avec mon code tel que posé (sauf bien sûr la gestion de la suppression de themes)

    que veut Temp après la tentative d'affectation ?

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    test ca
    on a bien le range bien déterminé mais la suppression ne se fait pas alors qu'a la main ca le fait
    le message ne trompe pas l'adresse est bonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub tabx1()
        Dim entete, new_nom$, themes, lignes
        entete = Array("toto", "titi", "riri", "fifi", "loulou", "truc", "bidule", "machin", "chose")
        new_nom = "panel1"
        lignes = 6
        themes = "truc bidule" & Date & "/" & "machin"
        create_tableau entete, new_nom, themes, lignes
    End Sub
    Function create_tableau(entete, new_nom As String, ByVal themes As String, ByVal lignes As Long)
        Dim rng As Range, TbS As ListObject
        With ActiveSheet
            '************************************************************************************
            'ici je voudrais le supprimer si il existe ainsi que tout mise en couleur ou format sur la plage occupée par le tableau
            For Each TbS In .ListObjects
                Debug.Print TbS.Name & " : "
                If TbS.Name = new_nom Then Set rng = Union(Range(new_nom & "[#all]"), Range(new_nom & "[#all]").Offset(-2))
            Next
            If Not rng Is Nothing Then MsgBox "range a supprimer : " & rng.Address
            If Not rng Is Nothing Then rng.EntireRow.Delete
            '************************************************************************************
             .Cells(Rows.Count, 1).End(xlUp).Offset(1) = themes
            With .ListObjects.Add(xlSrcRange, .Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(lignes, UBound(entete) + 1), , xlNo)
                .Name = new_nom
                .TableStyle = "TableStyleMedium11"
                With .HeaderRowRange
                    .Value = entete
                    .Interior.Color = RGB(0, 100, 0)
                    .Font.Color = vbWhite
                End With
            End With
        End With
    End Function
    puré je m'emboucanne la vie pour ca
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    joe avec ton exemple la partie on error .... et temp sont passé et l'erreur se declenche a la ligne
    conclusion ta gestion d'erreur ne pointe pas l'erreur pourtant dans la fenetres des names et !! le sheets le tableau(new_nom) y est bien
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bon ca y est ca match maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub tabx1()
        Dim entete, new_nom$, themes, lignes
        entete = Array("toto", "titi", "riri", "fifi", "loulou", "truc", "bidule", "machin", "chose")
        new_nom = "panel1"
        lignes = 6
        themes = "truc bidule" & Date & "/" & "machin"
        create_tableau entete, new_nom, themes, lignes
    End Sub
    Sub tabx2()
        Dim entete, new_nom$, themes, lignes
        entete = Array("vcbgcc", "titi", "riri", "fifi", "loulou", "truc", "bidule", "machin", "chose")
        new_nom = "panel1"
        lignes = 6
        themes = "truc bidule" & Date & "/" & "machin"
        create_tableau entete, new_nom, themes, lignes
    End Sub
    Function create_tableau(entete, new_nom As String, ByVal themes As String, ByVal lignes As Long)
        Dim rng As Range, TbS As ListObject
        With ActiveSheet
            '************************************************************************************
            'ici je voudrais le supprimer si il existe ainsi que tout mise en couleur ou format sur la plage occupée par le tableau
            For Each TbS In .ListObjects
                Debug.Print TbS.Name & " : "
                If TbS.Name = new_nom Then Set rng = Union(Range(new_nom & "[#all]"), Range(new_nom & "[#all]").Offset(-2))
            Next
            If Not rng Is Nothing Then MsgBox "range a supprimer : " & rng.Address
            If Not rng Is Nothing Then rng.EntireRow.Delete
            '************************************************************************************
             .Cells(Rows.Count, 1).End(xlUp).Offset(1) = themes
            With .ListObjects.Add(xlSrcRange, .Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(lignes, UBound(entete) + 1), , xlNo)
                .Name = new_nom
                .TableStyle = "TableStyleMedium11"
                With .HeaderRowRange
                    .Value = entete
                    .Interior.Color = RGB(0, 100, 0)
                    .Font.Color = vbWhite
                End With
            End With
        End With
    End Function
    puré de puré
    merci a tous
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    J'avais retypé Temp pour une autre écriture, mais pas remis en place quand je t'ai copié le code

    si on le laisse en Listobject, il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Temp = .ListObjects(new_nom)
    et ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Temp Is Nothing Then Temp.Range.EntireRow.Delete

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    j'ai trouvé ton erreur joe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function create_tableau(entete, new_nom As String, ByVal themes As String, ByVal lignes As Long)
        Dim Temp As ListObject, rng As Range
        With ActiveSheet
            '************************************************************************************
            'ici je voudrais le supprimer si il existe ainsi que tout mise en couleur ou format sur la plage occupée par le tableau
            On Error Resume Next
            'Set Temp = .ListObjects(new_nom).Range
            Set Temp = .ListObjects(new_nom)
            On Error GoTo 0
            MsgBox Temp.Range.Address
            If Not Temp Is Nothing Then
                Set rng = Union(Range(new_nom & "[#all]"), Range(new_nom & "[#all]").Offset(-2))
                rng.EntireRow.Delete
            End If
    on s'est croisé
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    joe basé sur ton model
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub jpe_tab1()
        Dim entete, new_nom$, themes, lignes
        entete = Array("toto", "titi", "riri", "fifi", "loulou", "truc", "bidule", "machin", "chose")
        new_nom = "panel1"
        lignes = 6
        themes = "truc bidule" & Date & "/" & "machin"
        create_tableau entete, new_nom, themes, lignes
    End Sub
    Function create_tableau(entete, new_nom As String, ByVal themes As String, ByVal lignes As Long)
        Dim rng As Range
        With ActiveSheet
            '************************************************************************************
            'ici je voudrais le supprimer si il existe ainsi que tout mise en couleur ou format sur la plage occupée par le tableau
            On Error Resume Next
            'Set Temp = .ListObjects(new_nom).Range
            Set rng = Union(Range(new_nom & "[#all]"), Range(new_nom & "[#all]").Offset(-2))
            On Error GoTo 0
             If Not rng Is Nothing Then msgbox rng.address : rng.EntireRow.Delete
     
            '************************************************************************************
            .Cells(Rows.Count, 1).End(xlUp).Offset(1) = themes
            With .ListObjects.Add(xlSrcRange, .Cells(Rows.Count, 1).End(xlUp).Offset(2).Resize(lignes, UBound(entete) + 1), , xlNo)
                .Name = new_nom
                .TableStyle = "TableStyleMedium11"
                With .HeaderRowRange
                    .Value = entete
                    .Interior.Color = RGB(0, 100, 0)
                    .Font.Color = vbWhite
                End With
            End With
        End With
    End Function
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Coucou Patrick ,

    J’ai suivi ton post de loin (trop de taf et donc manque de temps),
    J’ai pas très bien compris la démarche/le but de ce code ??
    Peux tu m’expliquer ??
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    Par défaut
    Bonjour

    Et en remplaçant toutes ces lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    '************************************************************************************
            'ici je voudrais le supprimer si il existe ainsi que tout mise en couleur ou format sur la plage occupée par le tableau
            For Each TbS In .ListObjects
                Debug.Print TbS.Name & " : "
                If TbS.Name = new_nom Then Set rng = Union(Range(new_nom & "[#all]"), Range(new_nom & "[#all]").Offset(-2))
            Next
            If Not rng Is Nothing Then MsgBox "range a supprimer : " & rng.Address
            If Not rng Is Nothing Then rng.EntireRow.Delete
            '************************************************************************************
      .Cells(Rows.Count, 1).End(xlUp).Offset(1) = themes
    par seulement celles-ci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Rows("2:10").Delete
    .Cells(2, 1) = themes

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour ordonc il faut suivre
    j'ai precisé au debut qu'il y allait en avoir 8 de tableaux et il ne seront pas toujours au meme endroit
    donc les indexs de ligne en dur: pas possible
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Coucou Patrick ,

    J’ai suivi ton post de loin (trop de taf et donc manque de temps),
    J’ai pas très bien compris la démarche/le but de ce code ??
    Peux tu m’expliquer ??
    je telecharge 8 table que je transforme en t structuré
    manque de pot elle ne sont pas tout le temps dispos alors elle sont telechargées dans le desordre
    et en cours de journée je les telecharge x fois (mise a jour )

    d'ou mon besoins de créer le t structuré en le detruisant avant comme ca ils sont pas dans l'ordre sur le sheets mais je n'ai pas de trou blanc (plage orpheline)dans la feuille
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] suprime ligne avant un tableau
    Par Naoned005 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/06/2012, 19h04
  2. [AC-2003] suprimer caracteres avant enregistrement
    Par chuspyto dans le forum VBA Access
    Réponses: 11
    Dernier message: 20/09/2009, 20h15
  3. À lire OBLIGATOIREMENT avant de poster sur ce forum
    Par ok.Idriss dans le forum Débats sur le développement - Le Best Of
    Réponses: 2
    Dernier message: 24/09/2006, 23h21
  4. A lire impérativement avant de poster un message
    Par ok.Idriss dans le forum Demandes
    Réponses: 0
    Dernier message: 01/05/2002, 18h57
  5. IMPORTANT! A lire avant tout chose
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 0
    Dernier message: 01/05/2002, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo