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 :

Problème avec Worksheet_Change


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut Problème avec Worksheet_Change
    Bonjour, j'ai un petit soucis avec le Worksheet_Change.

    Le problème est que lorsque je lui demande d'aller effectuer un changement dans une autre feuille... il ne fait que me sélectionner la feuille en question, mais il n'effectue pas la commande que je lui demande de faire.

    Voici un exemple simple de ce qu'il ne fait pas. Je lui demande de sélectionner la feuille "Feuille de planning" et ensuite de sélectionner la cellule T20, mais il ne fait que me sélectionner la feuille en question... Y'a quelque chose que je n'ai pas pigé?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal target As Range)
     
    Worksheets("Feuille de planning").Select
    Range("T20").Select
     
    End sub
    Merci d'avance.

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal target As Range)
    Worksheets("Feuille de planning").Range("T20").Select
    End Sub
    je corrige :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_Change(ByVal target As Range)
    Worksheets("Feuil3").Activate
    Worksheets("Feuille de planning").Range("T20").Select
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    Génial! Merci casefayere! Ton truc fonctionne. Par contre... mon cutcopymode = false ne fonctionne pas à la toute fin de ma procédure... j'ignore pourquoi .

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je viens de voir une bétise, j'ai oublié de corriger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuil3").Activate
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuille de planning").Activate
    j'espère que tu auras compris
    par contre, ta procédure, je ne la connais pas, alors il faut que tu en dises plus et que tu la communiques
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    Pas de problème, j'avais compris l'erreur casefayere.

    Mais bon, maintenant que mon copier coller fonctionne bien d'une feuille à l'autre, lorsque je modifie une cellule, je ne suis pas capable d'annuler le cutcopymode = false. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    target.Copy
    Worksheets("Feuille de Planning").Activate
    Worksheets.Range("T20").Select
    Selection.Paste
    Sheets("Feuil1").Select
    target.Select
    Application.CutCopyMode = False
    Voilà, on dirait que dans le code, le Application.CutCopyMode = False ne fonctionne pas. La cellule que j'ai copiée est toujours en surbrillance... étrange

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    Si tu ne veux copier que la valeur de la selection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim a_copier' as (à voir avec données à copier)
    a_copier = target
    'dans ce cas, plus besoin de "activate" ou select à moins que tu ne tiennes à ouvrir "Feuille de Planning"
    Worksheets("Feuille de Planning").Range("T20").value = a_copier
    avec cet exemple, tu ne copies que la valeur

    mais si je reprends ton code modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
       Target.Copy
       Sheets("Feuille de Planning").Activate
       Sheets("Feuille de Planning").Range("T20").Select
       ActiveSheet.Paste
       Sheets("Feuil1").Select
       Application.CutCopyMode = False
    End Sub
    attention, dans ce cas, le code agit sur toutes les cellules de "feuil1"
    je pense que tu devras mettre une condition "If target.address = ..." ou "If target.columns = ...", etc

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. [XL-2003] Problème avec une Worksheet_Change
    Par sylviobarca dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/04/2011, 08h53
  2. Problème de blocage avec Worksheet_Change
    Par Riri80 dans le forum Excel
    Réponses: 2
    Dernier message: 30/01/2009, 09h27
  3. Problème avec Worksheet_Change
    Par Le POlonais dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/12/2007, 09h54
  4. Réponses: 8
    Dernier message: 01/09/2007, 21h20
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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