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 :

Executer procedure sur cellule non selectionée [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 487
    Points : 163
    Points
    163
    Par défaut Executer procedure sur cellule non selectionée
    Bonjour,

    Je voudrais executer une procedure en pointant une cellule par le biais de Activecell.Offset, mais sans la selectionner.
    J'ai donc fait le code suivant mais ça ne fonctionne pas ça prend toujours ma cellule de reference et non celle pointer par Activecell.Offset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     If Chb_surcote = True Then
            ActiveCell.Offset(0, 4).Run Surcote
    Si quelqu'un a une idée, merci d'avance

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    La syntaxe ne semble pas bonne. Mais pour savoir comment écrire l'instruction, il faudrait savoir ce qu'est "Surcote" et si c'est une procédure, quels sont ses arguments.

    PGZ

  3. #3
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 487
    Points : 163
    Points
    163
    Par défaut
    Bonsoir pgz

    Ma procedure Surcote est celle ci, tiré de l'enregistreur de macro :

    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
     
    Sub Surcote()
     
        With Selection.Font
            .Name = "ITC Bookman Demi"
            .Size = 10
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
        Selection.Interior.ColorIndex = 15
    End Sub
    C'est juste pour changer la couleur du fond et la police, elle est executé apres validation d'une userform si une checkbox (Chb_surcote) est coché.

    J'espere etre assez claire

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    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
    13
    14
    15
    16
    17
    Sub Surcote(Rng As Range)
     
    With Rng
        With .Font
            .Name = "ITC Bookman Demi"
            .Size = 10
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
        .Interior.ColorIndex = 15
    End With
    End Sub
    ET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Chb_surcote = True Then
            Call Surcote(ActiveCell.Offset(0, 4))
    PS: Essaies d'éviter de travailler avec les Select, Acticecell, Activate....

  5. #5
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 487
    Points : 163
    Points
    163
    Par défaut
    Merci mercatog,

    Je teste ça demain car je ne suis plus devant mon fichier.

    Quand à eviter d'utiliser les Select, Acticecell, Activate.... je voudrais bien mais je ne suis pas un pro en programmation, et je ne sais pas comment faire autrement.
    Mais si tu as un tuyau ou un tuto qui me permette de comprendre comment faire autrement, n'ésite pas.

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    C'est aussi simple qu'un adressage direct

    Regarde ici cet exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sheets("Feuil1").select
    range("A1").select
    Activecell.offset(0,1).Interior.colorindex=4
    Et fais une comparaison avec celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("Feuil1").range("B1").Interior.colorindex=4
    C'est direct, sans aucune sélection ou activation (qui rendent le code instable)

  7. #7
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,
    au niveau tuto, vois ceci :

    Programmer efficacement avec Excel en VBA

    cordialement,

    Didier

  8. #8
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 487
    Points : 163
    Points
    163
    Par défaut
    Bonjour Mercatog et Ormonth

    Mercatog merci pour le coup de pouce et les infos je vais essayer de re voir tout le code de mon fichier cela permettra certainement qu'il soit plus rapide en execution.

    Et merci Ormonth pour le tuto je vais essayer de le lire le plus attentivement possible.

    Encore merci à vous deux

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

Discussions similaires

  1. [AC-2010] calcul d'une moyenne sur cellule non vide
    Par lolocdm dans le forum Access
    Réponses: 1
    Dernier message: 02/02/2015, 14h51
  2. [XL-2003] MOYENNE SI sur cellules non contigües
    Par CODYCO dans le forum Excel
    Réponses: 6
    Dernier message: 07/03/2012, 09h06
  3. [XL-2003] action sur des cellules non vides
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/05/2009, 16h33
  4. compter sur une ligne à partir de derniere cellule non vide
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/04/2009, 19h23
  5. Réponses: 6
    Dernier message: 10/02/2006, 14h46

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