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 dernière ligne sur plusieurs tableau simultanément [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Profession indépendande
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Profession indépendande
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Points : 57
    Points
    57
    Par défaut Suprimer dernière ligne sur plusieurs tableau simultanément
    Bonjour
    J'ai tenter d'adapter une macro pour supprimer les dernières de tableaux sur plusieurs feuilles nommés "data_..."

    La macro ne bug pas à l’exécution (ce qui n'est pas courant avec moi) par contre elle ne supprime le dernière ligne qu'au 1er tableau.

    Ci-dessous le code, que doit-je modifier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub SupprimerDernièreLigne()
     
    Dim a, I As Byte
    a = Split("Data_Système;Data_Troupeau;Data_Lait;Data_Ration;Data_Compta", ";")
    For I = 0 To UBound(a)
     
      With Sheets(a(I)).ListObjects(1).Range
        ActiveSheet.Rows(.Row + .Rows.Count - 1).Delete
      End With
      Next
    End Sub
    Ceci étant ma première étape, je voudrai ensuite le lancer à partir d'un userform et Choisir la ligne à supprimer, pas forcement la dernière, mais déjà ça marchait pour la dernière ligne ce serait un bon début

    Joël

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonsoir Joel, bonsoir le forum,

    Supprime ActiveSheet dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Rows(.Row + .Rows.Count - 1).Delete
    Ça devrait aller mieux...

  3. #3
    Membre du Club
    Homme Profil pro
    Profession indépendande
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Profession indépendande
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Points : 57
    Points
    57
    Par défaut
    Bonsoir et merci Thautheme, mais ça ne fonctionne pas.

    Si j'enlève juste ActiveSheet, ça ne fait plus rien et si j'enlève le point (.) qui suit, ça ne supprime toujours que la dernière ligen du premier tableau sur la feuille Data_système, rien sur les tableaux des autres feuilles (Data_Troupeau, Data_Lait...)

    Joël

  4. #4
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonsoir Joel, bonsoir le forum,

    Pour t'avouer la vérité je ne comprends pas ton code mais il est vrai que je n'utilise pas les "tableaux" dans Excel. Pour t'aider il me faudrait recréer un exemple et franchement, j'ai la flemme... Si tu veux bien en mettre un en pièce jointe je m'y pencherai dessus.

  5. #5
    Membre du Club
    Homme Profil pro
    Profession indépendande
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Profession indépendande
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Points : 57
    Points
    57
    Par défaut
    Re
    C'esy surement pas de la flemme de données un coup de main à des gens comme moi équipés de 2 mains gauches et voudrais faire de l'art.
    C'est quand même à moi de bosser un peu, même si je décroche très (trop) vite.
    Joël
    Ci joint le tableur
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonsoir Joël, bonsoir le forum,

    Citation Envoyé par joel50 Voir le message
    J'ai tenter d'adapter une macro pour supprimer les dernières lignes de tableaux sur plusieurs feuilles nommés "data_..."
    les dernières c'est vague... Le code ci-dessous supprime la dernière ligne de chaque tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub SupprimerDernièreLigne()
    Dim a, I As Byte
     
    a = Array("Données", "Données2", "Données3", "Données4", "Données5")
    For I = 0 To UBound(a)
        Sheets(a(I)).Select
        With Sheets(a(I)).ListObjects(1)
            .ListRows(.ListRows.Count).Delete
        End With
    Next I
    End Sub

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir Thautheme,
    j'ai juste modifié ça dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim I As Integer
    For I = 1 To Sheets.Count
    If InStr(1, Sheets(I).Name, "Data") <> 0 Then Sheets(a(I)).Select
     With Sheets(I).ListObjects(1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub SupprimerDernièreLigne()
    Dim I As Integer
    For I = 1 To Sheets.Count
    If InStr(1, Sheets(I).Name, "Data") <> 0 Then Sheets(a(I)).Select
        With Sheets(I).ListObjects(1)
            .ListRows(.ListRows.Count).Delete
        End With
    End If
    Next I
    End Sub

  8. #8
    Membre du Club
    Homme Profil pro
    Profession indépendande
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Profession indépendande
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Points : 57
    Points
    57
    Par défaut
    Bonsoir, merci tous les 2
    Ca bosse tard
    Tauhème, ton code fonctionne
    Robert, j'aime toujours l'idée du code évolutif, par contre j'ai l'erreur; erreur de compilation, Sub ou fonction non définie (a(I)) et si j'enlève la a j'ai end if sans bloc if.
    Joël

    J'ai essayé comme suit, j'ai erreur tableau attendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub SupprimerDernièreLigne()
    Dim I As Integer
    Dim a As Byte
    For I = 1 To Sheets.Count
    If InStr(1, Sheets(I).Name, "Data") <> 0 Then Sheets(a(I)).Select
        With Sheets(I).ListObjects(1)
            .ListRows(.ListRows.Count).Delete
        End With
    End If
    Next I
    End Sub

  9. #9
    Invité
    Invité(e)
    Par défaut
    désolé dans la modification j'ai oublié des trucs!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub SupprimerDernièreLigne()
    Dim I As Integer
    For I = 1 To Sheets.Count
        If InStr(1, Sheets(I).Name, "Data") <> 0 Then
            With Sheets(I).ListObjects(1)
                .ListRows(.ListRows.Count).Delete
            End With
        End If
    Next I
    End Sub

  10. #10
    Membre du Club
    Homme Profil pro
    Profession indépendande
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Profession indépendande
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Points : 57
    Points
    57
    Par défaut
    Super, extra, comme d'habitude, ça marche.
    Ca continue à bien avancer sur mon tableur, et surtout rassurant de verrouiller un max de risque d'erreur et de prévoir l'évolutivité
    Merci à tous encore une fois... heu mille fois
    Joël

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

Discussions similaires

  1. Transposé sur la dernière ligne d'un tableau d'une nouvelle feuille
    Par Mairequimby dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/12/2010, 14h13
  2. [OpenOffice][Texte] Aligner les N dernières lignes d'un tableau sur le bas de page
    Par tchize_ dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 25/08/2010, 16h09
  3. Réponses: 1
    Dernier message: 03/11/2009, 16h31
  4. [CSS] Dernière ligne d'un tableau
    Par GLDavid dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 28/07/2006, 15h23
  5. Réponses: 4
    Dernier message: 19/05/2006, 10h10

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