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 :

VBA Effacer une plage de cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut VBA Effacer une plage de cellules
    Bonjour à tous,

    Voila je suis débutant en VBA et en règle générale en programmation. J'aurais une question a vous soumettre concernant un code VBA pour "trier" un tableau excel. MMon tableau excel est oragnisé sur plusieurs colonnes allant de A à L, et sur un nombre de lignes inconnu mais ne dépassant pas 500 lignes

    En fait j'aimerais que lorsque que la plage A2:F2 est identique à la plage A3:F3, la plage soit A3:F3 soit effacée et ainsi de suite en sachant que A4:F4 peut etre identique a A2:F2 et que lorsque A5:F5 par exemple est différent de A2:F2, la comparaison recommence a partir de A5:F5....c'est pas clair ?

    Exemple d'origine:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                A     B     C     D.....jusqu'a F   - les colonnes apres F contiennent d'autres champs a ne pas supprimer
    1           x     x     x      x                    
    2           x     x     x      x                     
    3           x     e     x      x                    
    4           y     y     y      y                    
    5           y     y     y      y                   
    6           z     z     z      z                   
    7           a     a     a      a
    Exemple tableau après VBA:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                A     B     C     D.....jusqu'a F     
    1           x     x     x      x                      
    2                                                       
    3           x     e     x      x                      
    4           y     y     y      y                    
    5                                                      
    6           z     z     z      z                     
    7           a     a     a      a
    Donc il s'agit simplement d'effacer les données des cellules et non pas de supprimer les lignes (ce que j'arrive a faire en vba).

    Macro que j'ai faites mais qui ne marche pas...erreur

    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
     Sub test()
     
    Dim i As Integer
    Dim j As Integer
     
    i = 1
    j = i + 1
    n = 1 ' compteur
     
    While n < 500
    linei = Cells(i, 1).Cells(i, 2).Cells(i, 3).Cells(i, 4).Cells(i, 5).Cells(i, 6).Value
    linej = Cells(j, 1).Cells(j, 2).Cells(j, 3).Cells(j, 4).Cells(j, 5).Cells(j, 6).Value
     
    If linei = linej Then
    j = j + 1: n = n + 1
    linej.ClearContents
    ElseIf linei <> linej Then i = j: j = i + 1: n = n + 1
     
    End If
    Wend
    End Sub
    Si quelqu'un peut m'aider sur ce code ça me serait bien utile...je ne pense pas que ce soit compliqué a faire en VB mais je bloque...

    Merci d'avance

    @+
    Monsterfab

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    Dim feuille As WorkSheet
    Set feuille = ActiveSheet ' ou autre feuille
    With feuille
    For i = .UsedRange.Rows.count To 1 Step - 1
      j = i + 1
      If (.Cells(i, 1) & .Cells(i, 2) & .Cells(i, 3) & .Cells(i, 4) & .Cells(i, 5) & .Cells(i, 6)) = (.Cells(j, 1) & .Cells(j, 2) & .Cells(j, 3) & .Cells(j, 4) & .Cells(j, 5) & .Cells(j, 6)) Then
         .Range(.Cells(j,1), .Cells(j,6)).ClearContents
      End If
    Next i
    End With
    End Sub

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu veux effacer ta ligne ou la supprimer ?

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut [Résolu]
    Salut,

    En fait je veux effacer le contenu des cellules mais la solution de Dadavyvy marche parfaitement! Je vais regarder et comprendre!

    Merci!!!

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

Discussions similaires

  1. [XL-2007] Effacer une plage de cellule dont une valeur est nulle
    Par VIPNO dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/02/2012, 07h49
  2. [XL-2007] Effacer une plage de cellule
    Par jfgarnier dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/03/2011, 17h10
  3. [VBA-E] Effacer le contenu d'une plage de cellules
    Par nicobox dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/06/2006, 12h20
  4. [VBA] Copier une plage de cellules dans un fichier fermé
    Par SFrane dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/01/2006, 16h52
  5. [VBA] Parcourir une plage de cellule
    Par Dinytro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2005, 08h18

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