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 :

VBA Lire matrice nXm+ actualisation résultats


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Par défaut VBA Lire matrice nXm+ actualisation résultats
    Bonjour tout le monde,
    Dans un premier temps j'aimerai lire une matrice nXm de la fauille "S" afin de pouvoir faire des opérations dessus, j'ai bien essayé ça mais ça marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Matri()
    Dim S, As Variant
    Dim i, j As Integer
    n = Range("g3").Value
    m = Range("g4").Value
     
    For i = 1 To n
    For j = 1 To m
    S(i, j)= Worksheets("S").range Cells(3 + i - 1, 2 + j - 1).Value
    Next j
    Next i
    Dans un deuxième temps j'aimerai que les résultats changent dés que je change les données (à savoir la feuille "S", la feuille "W" et les cellules G3 et G4 de la feuille"Act VBA" sans avoir a réexecuter ma macro a chaque fois.

    Merci d'avance.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    dans un permier temps j'ai corrigé ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Matri()
    Dim S As Variant
    Dim i As Integer, j As Integer, n As Integer, m As Integer
    n = Range("g3").Value
    m = Range("g4").Value
    ReDim S(n, m)
     
    For i = 1 To n
        For j = 1 To m
            S(i, j) = Worksheets("S").Cells(3 + i - 1, 2 + j - 1).Value
        Next j
    Next i
    End Sub
    a+

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    RE

    le temps d'essayer pour ne pas ecrire de bétise comme il y a longtemps que je ne l'avais pas utilisé.

    pour tes feuilles S et W utiliser l'événement change de tes feuilles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    'Ton code
     
    End Sub
    pour la feuille "Act VBA"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("g3:g4"), Target) Is Nothing Then
     
        'ton code
     
    End If
    End Sub
    a+

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Par défaut
    Merci pour ta réponse zyhack.
    Pour la lecture de la matrice c'est fait
    En revanche pour ce qui est de l'actualisation des résultats je galère, je m'y suis surement mal pris.
    Je veux juste te préciser qu'il n'y a pas de macro dans les feuilles "S" et "W", il y a seulement des données et je veux que ma macro s'execute automatiquement s'il y a changement dans une de ces pages ou dans les cellules G3 et G4 de ma feuille Act VBA.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 53
    Par défaut
    Je me demandais s'il n y avait pas u code a saisir dans thisworbook

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    et bien au dessus de thisworkbook tu as le nom des feuilles dans la fenêtre vb

    il te suffit de double cliquer sur chacune des feuilles que je t'ai cité, y rentrer le code et remplacer " 'Ton code " par " pour appeler ta macro qui je le suppose ce trouve dans un module.

    je ne sais pas ci c'est clair , dans tous les cas tiens moi au courant.

    a+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/02/2011, 19h19
  2. [VBA-E] Excel n'actualise pas les données
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/12/2006, 09h17
  3. [VBA Access]Pb affichage de résultat d'une requête
    Par BouGeTonQ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/06/2006, 18h49
  4. [VBA-E]Comment cumuler le résultat de pusieurs feuilles
    Par LouBoulpi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/02/2006, 18h35
  5. [Vba] Lire BDD avec Excel
    Par Emcy dans le forum Access
    Réponses: 12
    Dernier message: 09/11/2005, 11h09

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