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 :

effacer des contenus de cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Tout ce que ne fait pas le patron
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tout ce que ne fait pas le patron

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Points : 21
    Points
    21
    Par défaut effacer des contenus de cellules
    Bonjour,
    Je pilote un fichier Excel depuis vba Access, donc je ne sais pas si je suis au bon endroit, dans la mesure où c'est un peu un mélange des deux.

    Je cherche dans une partie d'une colonne à effacer le contenu de ma cellule Bi si elle est égale à la cellule Bi-1
    J'ai rédigé ce code, mais lors de l'exécution, l'appli fait comme si elle ne la voyait pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    i = 7
    Do While i < 7 + Lign1 + 1
    For i = 7 To 7 + Lign1
        If range("B" & i) = range("B" & i - 1) Then
            range("B" & i).ClearContents
            MsgBox "coucou"
        End If
    Next
    i = i + 1
    Loop
    Je ne comprends pas : ça me semblait bien sur le moment...

    Merci d'avance de votre aide.

    Arzawe

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    salut Arzawe et le forum

    Si je comprends bien, ton code est sur Access.
    Si c'est ça, ça me semble normal : Visual Basic for Application
    VBA Access <> VBA Excel et donc il faut lui dire que cette partie concerne Excel (mais je ne sais pas comment )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    i = 7
    Do While i < 7 + Lign1 + 1
    For i = 7 To 7 + Lign1
    ........
    Next
    i = i + 1
    Loop
    Je ne comprends pas ce que tu veux faire avec ces boucles imbriquée utilisant la même variable quand on sort de la goucke For Next, i=7 + Lign1 + 1 =>instrction i=i+1 => à ce moment, i=7 + Lign1 + 2
    Même, en damettant que tu ais :
    Do While i < 7 + Lign1 + 500
    For i = 7 To 7 + Lign1
    Quand tu recommences la boucle while, la première instruction que rencontre le programme est : For i = 7 To 7 + Lign1
    en français ; met la variable i à la valeur 7 et compare-la à la valeur (7+Ligne1) si elle st inférieure ou égale, passe à l'instruction suivante, sinon (si elle est supérieure) passe à l'instruction qui est après next.
    Pas près de finir ta boucle

    A+

  3. #3
    Membre à l'essai
    Femme Profil pro
    Tout ce que ne fait pas le patron
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tout ce que ne fait pas le patron

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    En fait c'est très simple : j'arrive à piloter grosso modo Excel depuis le vba access. Mais là je veux juste lui dire que si ma cellule est égale à la précédente, il en efface le contenu. Alors peut-être que oui, j'ai fait trops de boucles, mais je ne sais pas comment faire. Actuellement il fait comme s'il en voyait rien.

    Arzawe

  4. #4
    Membre à l'essai
    Femme Profil pro
    Tout ce que ne fait pas le patron
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tout ce que ne fait pas le patron

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Bon j'ai juste enlevé la boucle "do while" et ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For i = 7 To 7 + Lign1
        If xlSheet.Cells(i, 2) = xlSheet.Cells(i - 1, 2) Then
            xlSheet.Cells(i, 2).ClearContents
        End If
    Next
    Je ne comprends vraiment pas pourquoi j'ai cherché à me prendre la tête comme ça : c'était vraiment tout bête

    Mais bon, c'est tout moi, ça : chercher un truc bien compliqué alors que la solution est sous mon nez

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

Discussions similaires

  1. [XL-2010] Filtrer sur des contenus de cellules en vba
    Par drabmol dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/03/2013, 13h38
  2. Réponses: 1
    Dernier message: 21/04/2011, 15h09
  3. Comment effacer des cellule après modification d'une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/03/2009, 08h51
  4. Effacer des cellules en fonction de la date
    Par jarault dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/04/2008, 12h08
  5. effacer des caracteres dans chaque cellule d'une plage
    Par chamus dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/11/2006, 17h14

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