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-E: Macro pour matrice


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut VBA-E: Macro pour matrice
    Bonjour,
    Je cherche de l'aide pour Créez une macro qui génère une matrice de N rangées x M colonnes. Un bouton de commande sera utilisé pour générer la matrice et un autre pour l'effacer.

    Merci d'avance pour votre aide,
    Marco

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par es.marco
    Bonjour,
    Je cherche de l'aide pour Créez une macro qui génère une matrice de N rangées x M colonnes. Un bouton de commande sera utilisé pour générer la matrice et un autre pour l'effacer.

    Merci d'avance pour votre aide,
    Marco
    C'est bien ! Quel est le problème ? Tu as une erreur ? Laquelle ? Sur quelle ligne de code ? Montre-nous ce que tu as fait.

    PS - Tu ne comptes pas sur nos pour te l'écrire ? Sinon, tu te trompes de forum.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut
    Voici le code que j'ai ecrit:
    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
    Private Sub CommandButton1_Click()
     
           Dim N, M As Integer
            Range("C3").Value = Rnd() * 10
            N = Range("C3").Value
            Range("C4").Value = Rnd() * 10
            M = Range("C4").Value
            'Range("C3").NumberFormat = "0"
            'Range("C4").NumberFormat = "0"
     
            Range("A8:A16") = Rnd() * 100
            Range("B8:B16") = Rnd() * 100
            Range("C8:B16") = Rnd() * 100
            Range("D8:C16") = Rnd() * 100
            Range("E8:D16") = Rnd() * 100
            Range("F8:E16") = Rnd() * 100
     
     
            Range("A8:F16").NumberFormat = "0"
     
     
    End Sub
    Mais à chaque que je clique sur le bouton générer, le nombre aléatoire est le même sur la colonne en question.
    Voici un exemple:
    26 35 0 74 84 84
    26 35 0 74 84 84
    26 35 0 74 84 84
    26 35 0 74 84 84
    26 35 0 74 84 84
    26 35 0 74 84 84
    26 35 0 74 84 84
    26 35 0 74 84 84
    26 35 0 74 84 84


    Merci d'avance.
    Marco

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Dans l'aide, tu as un exemple d'utilisation de rnd, tu devrais t'en inspirer

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut VBA-E: Macro pour matrice
    Est ce que sur l'aide de Excel? ou il y'a une rubrique Aide sur le forum?

    Merci,
    marco

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    cela dit, sans consulter l'aide sur les aleatoires, cela me parait normal que le nombre soit le meme sur la colone puisque tu lui dis
    Range("A8:A16") = Rnd() * 100
    à un momment x, il genere un nombre aléatoire et il le place dans ton range, soit dans les 8 cellules.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Que cherches-tu à obtenir ? Des nombres différents dans chaque cellule de la colonne, et différent dans chaque cellule de chaque ligne ou autre chose ?
    A+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut
    Peut être je suis très clair sur ma question!

    Voici ce que je cherche à faire:

    J'ai une cellule où je mets un nombre de Rangées "N" et une autre cellule où je mets le nombre de colonnes "M".

    Avec un bouton générer matrice, je veux générer une matrice de N rangées et M colonnes de nombre aléatoire entre 0 et 100.

    Avec le code que j'ai ecrit, j'obtient une matrice avec le nombre de rangées correct mais seulement une seule colonne est pleine.

    Voici 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
    Dim N, M As Integer
            N = Range("C3").Value
            M = Range("C4").Value
     
            Range("A8").Select
     
            Dim I As Integer
           For I = 0 To N - 1
           For J = 0 To M - 1
     
          ActiveCell.Offset(I, M).Value = Rnd() * 100
     
       Next I
    Merci d'avance pour ton aide,
    marco

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    salut. ton erreur est là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Offset(I, M).Value = Rnd() * 100
    a remplacer par
    ActiveCell.Offset(I, J).Value = Rnd() * 100
    d'autre part
    je pense que c'est ça que tu cherche a faire
    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
    Sub essai()
    Dim N, M As Integer
            N = Int((10 * Rnd) + 1)
            Range("C3").Value = N
            M = Int((10 * Rnd) + 1)
            Range("C4").Value = M
            Range("A8").Select
     
          Dim I As Integer
           For I = 1 To N
           For j = 0 To M - 1
           ActiveCell.Offset(I, j).Value = Int((100 * Rnd) + 1)
         Next j
       Next I
    End Sub

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    oui, c'est la même, a part que dans son premier code, il voulait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim N, M As Integer
            Range("C3").Value = Rnd() * 10
            N = Range("C3").Value
            Range("C4").Value = Rnd() * 10
            M = Range("C4").Value
    donc la taille de la matrice était bien aléatoire

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut
    Merci Pour votre aide.

    L'erreur que Alsimbad a mentionné est la bonne.

    Le premier code que j'ai envoyé ne marchait pas et j'ai changé le code avec la methode offset.

    Maintenant ça marche.

    merci beau coup pour votre aide,
    marco

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

Discussions similaires

  1. [VBA-E] Macro Pour Faire un Tri sur plage variable
    Par tabarly35 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2006, 19h02
  2. [VBA-PP] macro pour insérer des images dans PowerPoint
    Par mashpro dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 01/08/2006, 22h56
  3. [VBA-E] Macro pour tous fichiers Excel ?
    Par belfaigore dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 18h25
  4. [VBA-E] Macro pour copier cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/06/2006, 20h02
  5. [VBA-E] Macro pour convertir un fichier texte en excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2006, 14h47

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