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 :

Syntaxe de répétition sur évènementiel de feuille


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
    Mai 2004
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 61
    Par défaut Syntaxe de répétition sur évènementiel de feuille
    Bonsoir,

    J'avance un peu... Voici un code qui fonctionne, mais qui ne donne pas encore tout à fait ce que je souhaite...

    Pouvez-vous m'aider une fois de plus ?

    Merci d'avance !!

    En fait, je voudrais qu'à chaque fois que je fais une modif dans la colonne 3 les données soient mises en mémoire dans le tableau... Pour l'instant, je n'arrive qu'à mettre la dernière modif dans le tableau.

    J'ai essayé de faire une boucle For Each, mais je ne m'en sort pas... Il y a peut-être une autre méthode ?

    Alfred


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Private Tableau(10, 2)
    Private resul, resul2 As String
     
     
    Sub Worksheet_change(ByVal Target As Range)
     
    'On déclare les variables ligneLong et ligneCourt
    Dim ligneLong, ligneCourt
     
    'Si on modifie une cellule de la colonne 3
    If Target.Column = 3 Then
        'On récupère l'adresse de la cellule modifiée
        ligneLong = Target.Address
        'On coupe l'adresse pour ne garder que le numéro de la ligne
        ligneCourt = Mid(ligneLong, 4)
     
       'On met les données de la ligne modifiée dans le tableau
        i = 1
        For i = 1 To 5
            resul = "A" & ligneCourt
            resul2 = "C" & ligneCourt
            Tableau(i, 1) = Range(resul).Value
            Tableau(i, 2) = Range(resul2).Value
        Next
     
    End If
     
    End Sub
     
    Sub BoutonClic()
     
    Dim i
    Dim ialpha As String
     
        'On ouvre le fichier dans lequel on veut coller les données copiées
        Workbooks.Open ThisWorkbook.Path & "\Fichier1.xls"
     
        'On restitue les données dans la feuille excel
        i = 1
        For i = 1 To 5
            ialpha = i + 40
            resul = "F" + ialpha
            resul2 = "C" + ialpha
            ActiveSheet.Range(resul).Value = Tableau(i, 1)
            ActiveSheet.Range(resul2).Value = Tableau(i, 2)
        Next
     
        Erase Tableau()
     
    End Sub

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonjour,

    peux-tu préciser ce que tu veux ?

    Cumuler les données ou... ???

    sinon pour le N° de ligne, ceci suffit :

    cordialement,

    Didier

  3. #3
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 61
    Par défaut
    Bonjour Ormonth,

    Merci pour le Target.Row... Je m'étais bien compliqué la vie....

    Désolé de ne pas avoir été clair dans ma première demande, je vais essayer de reformuler de façon plus précise.

    Voici une partie de mon code :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Tableau(10, 2)
    Private resul, resul2 As String
     
     
    Sub Worksheet_change(ByVal Target As Range)
     
    'On déclare la variable ligneModif
    Dim ligneModif
     
    'Si on modifie une cellule de la colonne 'C' (N° 3)
    If Target.Column = 3 Then
     
        'On récupère le numéro de ligne de la cellule modifiée
        ligneModif = Target.Row
     
       'On met les données de la ligne modifiée dans le tableau
        i = 1
    '    For i = 1 To 5
            resul = "A" & ligneModif
            resul2 = "C" & ligneligneModif
            Tableau(i, 1) = Range(resul).Value
            Tableau(i, 2) = Range(resul2).Value
    '    Next
     
    End If
     
    End Sub
    Ce que fait ce bout de code :
    Si une cellule de la colonne 'C' est modifiée, on récupère le n° de la ligne modifiée, et, les données des colonnes A et C de cette même ligne, sont mises en mémoire dans un tableau.

    Ce que je voudrais faire :
    Si on modifie plusieurs cellules de la colonne 'C', à chaque fois qu'on modifie une cellule, on ajoute les données correspondantes dans le tableau.

    J'espère avoir été plus explicite...

    Merci d'avance pour votre aide.

    Cordialement,
    Alfred

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

Discussions similaires

  1. Répétition sur plusieurs feuilles
    Par Farhenheit dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/06/2014, 10h03
  2. Excel : consolidation de données sur une seule feuille
    Par aquamusic dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2006, 18h32
  3. Action sur toutes les feuilles d'un classeur
    Par beurnoir dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 23/12/2005, 15h11
  4. syntaxe css lien sur classe
    Par mussara dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 03/08/2005, 09h52
  5. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20

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