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 :

Suppression de lignes dans un tableau


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut Suppression de lignes dans un tableau
    rebonjour.

    j'ai 4 tableaux sur une meme feuille qui represente 4 trimestres scloaires. je duplique les noms et prenoms, classe et sexe du premier tableau dans les 3 autres tableaux. mais concernant les notes j'utilse la modification des lignes.
    ceci etant: quand je supprime la ligne du premier tableau et je la duplique rien ne se passe mais quand je saisie d'autres données cela se déroule correctement.
    ma préoccupation: je voudrais traduire ce langage en vba si c'est possible
    si la derniere ligne du tableau1 sur la feuille excel est exemple 4 alors on supprime toutes les lignes des 3 autres tableaux jusqu' a la ligne du tableau1.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Niamké 19 Voir le message
    ma préoccupation: je voudrais traduire ce langage en vba si c'est possible
    Bonjour,

    Créez une macro :
    • Enregistrez les séquences souhaitées.
    • Arrêtez la macro.
    • Regardez ce que vous obtenez dans la macro dans l'éditeur VBA.
    • Modifiez là pour l'adapter à tous les cas de figure.

  3. #3
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Créez une macro :
    • Enregistrez les séquences souhaitées.
    • Arrêtez la macro.
    • Regardez ce que vous obtenez dans la macro dans l'éditeur VBA.
    • Modifiez là pour l'adapter à tous les cas de figure.
    si la derniere ligne du tableau1 sur la feuille excel est exemple 4 alors on supprime toutes les lignes des 3 autres tableaux jusqu' a la ligne du tableau1.
    je l'ai essayé et je ne trouvais pas l'adaptation exacte ce pourquoi j'ai posté. neammoins merci pour votre guide. je continue de chercher la solutoin exacte...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Niamké 19 Voir le message
    je l'ai essayé et je ne trouvais pas l'adaptation exacte ce pourquoi j'ai posté
    Dans ce cas, il serait peut-être plus clair de mettre un fichier exemple avec votre code et des commentaires.

  5. #5
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    voici un exemple du fichier .
    sur l'autre fichier j'utilise une listbox
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Niamké 19 Voir le message
    En admettant que vous ayez mis à jour le tableau 1, le code ci-dessous placé dans un module standard supprime les 3 autres tableaux et en régénère trois autres sur le modèle du premier :

    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 TestCopierListObject()
     
        CopierListObject Sheets("Feuil1")
     
    End Sub
     
    Sub CopierListObject(ByVal FeuilleTableaux As Worksheet)
     
    Dim I As Integer
    Dim MonTableau As ListObject
    Dim MaColonne As Long
    Dim NbColonnes As Long
     
        With FeuilleTableaux
     
             If .ListObjects.Count > 1 Then
     
               For I = .ListObjects.Count To 2 Step -1
                   .ListObjects(I).Delete
               Next I
     
               Set MonTableau = .ListObjects(1)
     
               NbColonnes = MonTableau.ListColumns.Count
               MaColonne = NbColonnes + 2
     
               For I = 1 To 3
                   MonTableau.Range.Copy Destination:=.Cells(1, MaColonne)
                   MaColonne = MaColonne + NbColonnes + 1
               Next I
     
               Set MonTableau = Nothing
     
             End If
     
        End With
     
    End Sub

  7. #7
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    c'est exact mais dans le cas ou les notes saisies sont difféentes pour les 4 trimestres si je supprimes les 3 autres tableaux et je copie le premier ça fausse les moyennes générales annulles des élèves.
    je vous envoie le fichier original

  8. #8
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    voici le fichier original
    Fichiers attachés Fichiers attachés

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Niamké 19 Voir le message
    voici le fichier original
    Testez ce code :

    Le soucis, c'est que vous avez des homonymies de 2 types :

    - Les élèves ont le même nom et sont dans la même classe.
    - Les élèves ont le même nom et dans des classes différentes.

    Il vous faut travailler sur une colonne contenant les triplets nom,prénom, classe et éventuellement un autre caractère s'il y a deux élèves de même nom dans la même classe.


    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    Option Explicit
     
     
    Sub TestCopierListObject()
     
        MettreAJourListObject Sheets("rapport")
     
    End Sub
     
    Sub MettreAJourListObject(ByVal FeuilleTableaux As Worksheet)
     
    Dim I As Integer, J As Integer
    Dim MaColonne As Long, NbColonnes As Long
    Dim AireEleves As Range, CelluleEleves As Range
    Dim AireTableau As Range, CelluleTableau As Range
    Dim Continuer As Boolean
     
        With FeuilleTableaux
     
             Set AireEleves = .ListObjects(1).ListColumns(1).DataBodyRange
     
             If .ListObjects.Count > 1 Then
     
     
               ' Cas des ajouts
               For I = 2 To 4
                   Set AireTableau = .ListObjects(I).ListColumns(1).DataBodyRange
     
                   For Each CelluleEleves In AireEleves
                       Continuer = True
     
                       For Each CelluleTableau In AireTableau
                          If CelluleEleves = CelluleTableau Then Continuer = False
                       Next CelluleTableau
     
                       If Continuer = True Then
                         With .ListObjects(I)
                               .ListRows.Add
                               .ListRows(.ListRows.Count).Range(1, 1) = CelluleEleves
                          End With
                       End If
     
                   Next CelluleEleves
     
                   Set AireTableau = Nothing
     
               Next I
     
     
               ' Cas des suppressions
               For I = 2 To 4
                   Set AireTableau = .ListObjects(I).ListColumns(1).DataBodyRange
     
                   For J = AireTableau.Count To 1 Step -1
                       Continuer = True
                       For Each CelluleEleves In AireEleves
                          If CelluleEleves = AireTableau(J) Then Continuer = False
                       Next CelluleEleves
     
                       If Continuer = True Then
                         With .ListObjects(I)
                               .ListRows(J).Delete
                          End With
                       End If
     
                   Next J
     
                   Set AireTableau = Nothing
     
               Next I
     
              ' Tri des tableaux
               For I = 1 To 4
     
                    With .ListObjects(I)
                          .Sort.SortFields.Clear
                          .Sort.SortFields.Add Key:=.ListColumns(1).DataBodyRange, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                          With .Sort
                               .Header = xlYes
                               .MatchCase = False
                               .Orientation = xlTopToBottom
                               .SortMethod = xlPinYin
                               .Apply
                          End With
                    End With
              Next I
     
     
     
             End If
     
        End With
     
    End Sub

  10. #10
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    ici en cote d'ivoire nous pouvons avoir plus de 5 eleves ayant les memes noms dans une meme classe. ce pourquoi j'ai opté pour le doublage.
    je vais tester votre code et vous faire un feedback. ce fichier un fichier beta c'est pourquoi je teste toutes les éventualités qu'ils peuvent y avoir.

  11. #11
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    apres reflexion sur le code
    vous avez inseré l'autre procédure sur le tri. j'avais pensé à ça et aussi sur la recherche des noms et classes

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

Discussions similaires

  1. Suppression de ligne dans un tableau
    Par Dave Lopeur dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 16/06/2011, 18h21
  2. Probléme avec la suppression de ligne dans un tableau
    Par Tintou dans le forum VBA Word
    Réponses: 6
    Dernier message: 20/08/2009, 15h06
  3. [DOM] ajout suppression de ligne dans plusieurs tableau
    Par Invité dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 27/06/2008, 16h33
  4. Ajout/Suppression de ligne dans un tableau
    Par Nimothenicefish dans le forum WinDev
    Réponses: 2
    Dernier message: 14/02/2008, 11h56
  5. [Tableaux] Suppression de lignes dans un tableau
    Par lodan dans le forum Langage
    Réponses: 9
    Dernier message: 15/09/2006, 20h08

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