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 :

Récupérer le numéro de la ligne qui a été modifiée [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    ELECTROTECHNICIEN
    Inscrit en
    Mars 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ELECTROTECHNICIEN
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2010
    Messages : 61
    Par défaut Récupérer le numéro de la ligne qui a été modifiée
    Bonjour à tous,

    J'ai un fichier qui contient 11000 lignes en partage avec des collègues.
    Nous pouvons tous modifier le contenu de ce fichier.
    Les modifications se faisant par ligne je cherche à rajouter dans une colonne le nom de l'identifiant window qui a modifié la ligne.

    Pour l'instant, j'arrive a récupérer l'identifiant window est à le ranger dans une cellule lorsque ma feuille subit un changement:

    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)
    Dim lpBuff As String * 25
    Dim ret As Long
     
    ret = GetUserName(lpBuff, 25)
    Range("F1").value = lpBuff
     
    End Sub
    Maintenant je cherche a récupérer le numéro de la ligne modifiée pour ranger l'identifiant window dans la colonne ("F" & ligne).

    En espérant avoir été assez clair.
    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Formateur & Dévrloppeur en Bureautique
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur & Dévrloppeur en Bureautique

    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut
    Bonjour,
    il suffit d'ajouter à la procédure évènementielle la ligne suivante:

    bon courage

  3. #3
    Membre confirmé
    Homme Profil pro
    ELECTROTECHNICIEN
    Inscrit en
    Mars 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ELECTROTECHNICIEN
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2010
    Messages : 61
    Par défaut
    Merci Mnarchi

    Affaire résolu !
    Je ne connaissais pas "target"

    Voici mon code pour ceux qui cherchent comme moi

    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
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
    (ByVal lpBuffer As String, nSize As Long) As Long
     
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lpBuff As String * 25
    Dim ret As Long
    Dim ligne
     
    ligne = Target.Row
     
    ret = GetUserName(lpBuff, 25)
     
    Range("F" & ligne).Value = lpBuff
     
    End Sub

  4. #4
    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
    Attention quand même, quand la cellule F & ligne est changée (par le code même), l'évènement est appelé... boucle infinie.
    Il est impératif d'inhiber l'appel de l'évènement change quand le code écrit dans la feuille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lpBuff As String * 25
    Dim ret As Long, ligne As Long
     
    ligne = Target.Row
    ret = GetUserName(lpBuff, 25)
    Application.EnableEvents = False
    Range("F" & ligne).Value = lpBuff
    Application.EnableEvents = True
    End Sub

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

Discussions similaires

  1. récupérer le numéro de la ligne courante d'un fichier txt en javascript
    Par developppez dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/06/2008, 18h29
  2. Réponses: 3
    Dernier message: 07/01/2008, 17h12
  3. [C] récupérer le numéro de la ligne
    Par kynri dans le forum Windows
    Réponses: 13
    Dernier message: 08/12/2007, 12h24
  4. Récupérer le numéro de la ligne sélectionnée dans une variable?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/10/2007, 11h48
  5. [xml] Récupérer le numéro de la ligne d'erreur d'un fichier
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/03/2004, 19h09

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