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 :

code VBA aussi rapide que manuellement ? [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Par défaut code VBA aussi rapide que manuellement ?
    Bonjour tout le monde

    Je voudrais savoir s'il existe un moyen de réaliser rapidement une action sur toutes les cellules d'une feuille à la fois.

    Par exemple, lorsque par VBA, on note
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 To 65536
         For j = 1 To 256
              Cells(i, j) = ""
         Next j
    Next i
    Cela prend un nombre incalculable de secondes, alors qu'il est, manuellement, si rapide de cliquer sur la case en haut à gauche pour tout sélectionner, et d'appuyer sur suppr...


    Pourquoi une telle différence ? Y a-t-il un moyen de faire, par VBA, aussi rapide que manuellement ? (s'il peut le faire comme ça, j'imagine qu'il le peut aussi par code, mais il faudrait qu'il reprenne exactement le même algorithme...)


    Merci d'avance pour votre aide.


    .

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Comme ca

    ++
    Minick

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Par défaut
    En fait, c'était juste un exemple.
    Ce que je cherche réellement à faire sur de très nombreuses cellules est un Validation.Delete, pour effacer les listes qui s'y trouvent.
    (mais merci quand même )

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    bonjur, essaye ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cel as range
    for each cel in Union(range("A1:D8"),range("G10:J14"))
    cel.Validation.Delete
    next cel
    J'utilise union juste pour te montrer la commande tu peut très bien directement mettre Rang(.....)

  5. #5
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Jai repondu a la question initiale...


    Salut krovax,


    Sinon comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells.SpecialCells(xlCellTypeAllValidation).Validation.Delete
    Edit :
    Ou dans la lignee de krovax mais sans boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Union(Range("A1:D8"), Range("G10:J14")).SpecialCells(xlCellTypeAllValidation).Validation.Delete

    ++
    Minick

  6. #6
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Par défaut
    C'est infiniment plus rapide, sans comparaison
    merci beaucoup à tous les deux

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

Discussions similaires

  1. Je ne retrouve plus le code VBA que j'ai écrit
    Par meywey dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/08/2010, 15h40
  2. Que feriez-vous pour la diffusion d'un code VBA?
    Par tremens dans le forum Conception
    Réponses: 2
    Dernier message: 21/03/2010, 18h18
  3. Réponses: 1
    Dernier message: 24/09/2007, 09h49
  4. Réponses: 5
    Dernier message: 03/08/2006, 16h13
  5. Apache aussi rapide sous Win que sous Linux ?
    Par beastman007 dans le forum Apache
    Réponses: 1
    Dernier message: 20/10/2005, 15h19

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