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 :

msgbox si insertion de ligne [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Par défaut msgbox si insertion de ligne
    Bonjour,
    Est-il possible qu'une msgbox s'affiche si on fait une insertion de ligne dans une feuille?
    Merci

  2. #2
    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
    Bonjour,
    Une idée que j'ai eu ne lisant la question. On fait sans doute mieu et plus clean mais l'idée m'a amusé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If IsNumeric(Replace(Replace(Target.Address, "$", ""), ":", "")) Then MsgBox "Vous avez inséré ou supprimé une ligne"
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Par défaut
    merci krovax
    je ne comprends pas trop ce que tu as ecris mais à l'éxécution c'est dès que je clique sur une ligne que j'ai la message box.

    en fait merci beaucoup ca me convient comme ca le message je l'ai avant de faire l'insertion/ suppression.

  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
    tu as copié le code tel quel dans le code de la feuille?

    Tu n'as pas mis dans selectionchange?

    EN gros ce que fait le code il regarde l'adresse de la plage modifié et regarde si c'est une ligne complete. C'est loin d'être parfait car si tu modifie tout une ligne d'un coup ca le lance aussi

  5. #5
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Par défaut
    oui oui j'ai bien mis où il faut.

    Oui ce n'est pas parfait car dès que tu cliques sur une ligne le message se met mais c'est bon ca me convient comme ca merci encore j'aurais jamais trouvé ca tout seul

  6. #6
    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
    Ce qui n'ets pas normale c'est que la simple selection d'une ligne actionne le code.
    Essaye le dans un fichier vierge pour voir et si ca le fait envoi le je regarderais ca dans la soirée

  7. #7
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Par défaut
    Autant pour moi je suis vraiment naze
    J'étais persuadé de l'avoir mis dans le change et pas selectionchange donc oui c'est bon ca fonctionne comme tu le dis

    J'ai une autre grosse question là
    Je dois réouvrir un sujet ou pas ? vu que tu m'as l'air de beaucoup t'y connaitre..
    Je mets ma question ici et si il faut reouvrir j'éditerais et enleverais ma question.

    J'ai un classeur qu'on va nommé toto.xls
    Dans ce classeur je veux récupérer des données qui se trouvent dans d'autres classeur qui commencent tous par bud*.xls (stockés dans le même repertoire).
    les données à récupérees sont toujours sur la feuil4 (qui à un nom mais différent dans chaque classeur (c'est l'année qui change en fait)) donc il faut utiliser feuil4 ou item(4) je suppose.
    Dans chaque fichier je cherche la derniere ligne non vide (dernligne= Feuil4.Range("A2").End(xlDown).Row) et suivant cette ligne je copie A2:Adernligne et F2:Fdernligne dans mon classeur toto.

    Ma question est puis-je faire ca sans ouvrir les classeurs qui commencent par bud ?
    Pour l'instant j'ai commencé mais j'arrive juste à ouvrir et fermer les classeurs qui commencent par bud et je n'arrive pas à prendre des données dans ces classeurs.
    La solution avec classeur fermé doit être mieux je pense et plus rapide pour l'éxécution mais ca j'ai pas trouvé comment faire.
    Si quelqu'un peut m'aider..
    Merci

  8. #8
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Citation Envoyé par leptitdave Voir le message
    ...
    J'ai une autre grosse question là
    Je dois réouvrir un sujet ou pas ? vu que tu m'as l'air de beaucoup t'y connaitre..
    ...
    C'est vrai que Krovax est un as mais là il semble déconnecté, donc OUI, il vaut mieux ouvrir une nouvelle question pour augmenter tes chances que quelqu'un lise ta question...

    Je te laisse rouvrir une nouvelle discussion et on reparle de ton problème.

    A+

  9. #9
    Expert éminent 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
    Par défaut
    Et sans gymnastique?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Columns.Count = Columns.Count Then MsgBox "Ligne(s) supprimée(s) ou ajoutée(s)"
    End Sub
    Ou simplement 256 à la place de Columns.Count (en tout cas en X03)
    valable aussi s'il y a des colonnes masquées.

  10. #10
    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
    L'idée est pas mal plus simple moins couteuse en calcul que la manipulation de chaine de caractères, mais moins tordu donc moins amusante

  11. #11
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Par défaut [résolu]
    ok merci je vais regarder laquelle me convient le plus car celle de krovax était pas mal aussi et je ne sentais pas le calcul.

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

Discussions similaires

  1. INSERT multi-lignes avec valeurs connues
    Par herve91 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2006, 23h13
  2. [VB 6.0 + sql server] pb insertion de lignes trop nombreuses
    Par flores dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 30/10/2006, 16h29
  3. insert plusieur lignes
    Par allstar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/10/2006, 15h46
  4. echec d'insertion de ligne dans une table
    Par foblar dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/07/2006, 10h13
  5. [Tableaux] Insertion dynamique ligne dans un tableau
    Par masseur dans le forum Langage
    Réponses: 12
    Dernier message: 28/03/2006, 14h53

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