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 :

aide sur calcul dans les élements contenus dans un tableau en VBA


Sujet :

Macros et VBA Excel

  1. #21
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    bonsoir,

    merci a vous tous.
    Joe levrai ta routine fonctionne parfaitement mais comme c'est un quelques chose que j utilise dans plusieurs fichiers avec des données variantes je préfère l'avoir en function plutôt qu'en sub bref c'est un détail en tout cas mille mercisss.
    ERIIC merci beaucoup c'est super mais il y'a un probleme avec la deuxième ligne et première colonne. en effet elle devrait donner la valeur x(i+1) alors qu'on a 0 c'est de même que la deuxieme colonne et la première ligne j'essaie de résoudre le problème et je posterai la solution si j'y arrive.
    EN tout milles mercis.
    A PLUS..

  2. #22
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Si je respecte les conditions cité dans ton code, voilà ce que j'obtiens :

    Nom : Function CalculMatrice.PNG
Affichages : 125
Taille : 11,8 Ko

    les conditions ne devraient pas être modifiées ?? voir peut être en rajouter ??
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    Bonsoir RYU
    merci bcp oui ta première ma été fonction pour de ma première question m'a beaucoup servi pour faire la base de celle-ci mais je me suis améliorée sur l'utilisation de redim qui n'etait pas super top mais bno on apprend avec l'experience comme disait l'autre.
    En tout pour cette fonction on a le même problême que ERIC je pense qu'il manque une condition ou bien que je devrait revoir mes conditions en tout le code de JOE.LEVRAI fonctionne super bien même s'il me limite à 10 valeurs mdrrrrrr... (jaime).

    EN tout cas je m'éclate franchement l'apprentissage de la VBA qui est didacticiel et l'aide dans ce forum est supeerrrrrr TOOPPPP.
    merci merci j'arrive même pas a dormir encore tellement je veux trouver la solution.

    sur la deuxieme ligne colonne 1 tu devras avoir 15 et pas 0 si je me trompe pas. mille excuses si c'est le cas

  4. #24
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re

    J'ai modifié les conditions dans mon code afin d'avoir le même résultat présenté dans le post 18
    j'ai fais aussi un 2ème tableau reprenant les valeurs mais sur 6 lignes au lieu de 5
    Est ce que les nouvelles conditions dans mon code donneront toujours le bon résultat quelque soit le nombre de ligne ??

    Capture :

    Nom : Function CalculMatrice2.PNG
Affichages : 118
Taille : 38,5 Ko

    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
    Function CalculMatrice(Plage As Range, Lig&, col&) As Variant
    Dim VA
     
        VA = Application.Transpose(Application.Index(Plage, 0, 1))
     
        If Lig > UBound(VA) - 1 Or col > UBound(VA) - 1 Then
            CalculMatrice = "Error => n maxi = " & UBound(VA) - 1: Exit Function
        End If
     
        If Lig = col Then
            matrice = 2 * (VA(Lig) + VA(Lig + 1))
        ElseIf Lig > col And Lig - col = 1 Then
            matrice = VA(Lig)
        ElseIf col > Lig And col - Lig = 1 Then
            matrice = VA(col)
        End If
     
            CalculMatrice = matrice
     
    End Function
    Edit : je l'ai alors la solution ci dessus alors?

    Edit 2 :
    sur la deuxieme ligne colonne 1 tu devras avoir 15 et pas 0 si je me trompe pas
    en effet en reprenant les conditions dans ton code ça me donne bien 0 dans mon ancien code, mais pas le nouveau (modifié)
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  5. #25
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    oui elle fonctionne j'etais partie dans un délire avec plein de elseif.
    merci bcpp

  6. #26
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Ma nouvelle fonction présenté comme ceci :

    CalculMatrice(Plage ; ligne; colonne)

    te convient ??

    ou tu préfère un tableau qui se fait automatiquement ??

    PS : en jouant avec les formules excel il y a moyen d'étirer la formule comme je l'ai fait en mettant la formule en A1 (pour simplifier) et en l'étirant :
    =CalculMatrice($I$1:$I$6;LIGNE();COLONNE())
    Comme on est parti dans la même direction avec Eriic avec des petites différences
    - Dans mon code on peut cibler avec lignes / colonnes
    - Dans le sien sous forme matricielle donne l'ensemble des valeurs mais il faut bien sélectionner le nb de lignes et de colonnes

    Eriic : m'n veut pas 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
    14
    15
    16
    17
    18
    19
    20
    21
    Function calculmatriceEriic(x As Range)
        Dim i      As Long    'pour parcourir les lignes de la matrice
        Dim j      As Long    'pour parcourir les colonnes de la matrice
        Dim n      As Single    'taille de la matrice
        Dim matrice() As Double
     
        n = Application.CountA(x) - 1
        ReDim matrice(1 To n, 1 To n)
        For i = 1 To n
            For j = 1 To n
                If i = j Then
                    matrice(i, j) = 2 * (x(i) + x(i + 1))
                ElseIf i > j And i - j = 1 Then
                    matrice(i, j) = x(i)
                ElseIf j > i And j - i = 1 Then
                    matrice(i, j) = x(j)
                End If
            Next
        Next
        calculmatriceEriic= matrice    'valeur à changer pour obtenir toute les valeurs de la matrice
    End Function
    Edit : Delphine : avec mon code tu peux étirer la formule de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CalculMatrice($I$1:$I$6;LIGNES($A$16:$A16);COLONNES($A$16:A$16))
    Donc tu peux aussi bien cibler que faire le tableau, et si tu dépasses mon code te rappellera à l'ordre
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  7. #27
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    ERIIC merci beaucoup c'est super mais il y'a un probleme avec la deuxième ligne et première colonne. en effet elle devrait donner la valeur x(i+1) alors qu'on a 0 c'est de même que la deuxieme colonne et la première ligne j'essaie de résoudre le problème et je posterai la solution si j'y arrive.
    Je ne m'étais occupé que de la partie fonction pour que tu aies une matrice complète en retour, pas des calculs que tu y faisais que j'ai supposés justes.

    Eriic : m'n veut pas j'ai corrigé ton code
    Pas de soucis, il faut bien avancer :-)
    eric

  8. #28
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par delphine63000 Voir le message
    le code de JOE.LEVRAI fonctionne super bien même s'il me limite à 10 valeurs mdrrrrrr... (jaime).
    Bonjour,

    LIMITE est modifiable dans la procédure, il suffit de modifier le chiffre 10

  9. #29
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    Bonjour,

    ERIIC c'est ce que je me suis dite quand j'ai vu la function. En tout cas merci bcp

    Bonjour JOE oui j'avais compris lool tes commentaires on beaucoup aidé.
    MErci encore.
    ET RYU c'est super cool de ta part .

  10. #30
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    S'il faut nécessairement passer par une fonction plutôt qu'une procédure, il est préférable de l'utiliser en matriciel plutôt que d'ajouter des paramètres pour gérer les lignes et les colonnes


    par exemple :

    - de A1 à A5 on écrit 5 valeurs
    - on sélectionne une plage vide matérialisée par un carré 4*4 (NbValeurs-1)*(NbValeurs-1)
    - dans la barre de formule on met =calculmatriceEriic(A1:A5)
    - on valide la formule par Ctrl+Maj+Entrée
    - la matrice de résultat est maintenant remplie dans le carré

    Nom : FormMat.png
Affichages : 108
Taille : 12,0 Ko

    Si par mégarde on a sélectionné un carré "trop grand" alors les cellules supplémentaires recevront une erreur #N/A

  11. #31
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    hi,
    Exactement Joe, c'est ce que j'ai fait quand j'ai corrigé le code de Eriic puisque à peu de chose près nos codes sont similaire ici

    Après il y a qd même un avantage avoir les lignes et colonnes si on a besoin seulement d'obtenir une valeur précise, après tout dépend dont sont gérés les informations

    et comme je le disais en utilisant les formules LIGNES et COLONNES avec les valeurs relatives et absolues notre tableau on l'a aussi
    Ex : =CalculMatrice($I$1:$I$6;LIGNES($A$16:$A16);COLONNES($A$16:A$16))

    on pourrait même automatiser Lignes et colonnes avec 2 champs nommés que l'on pourrait appelé LIG e COL
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  12. #32
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    OUi JOE c'est comme ca que je vais faire merci bcp pour toutes ces explications.

    bonjour,

    Dans la suite de mon post initiale, comment je fais pour remplacer une seule ligne ou une seule colonne de mon tableau.
    j'ai vu dans les tutoriels avec redim preserve mais on met quoi après j'ai vu dans le tutoriel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     '--- Redéfinit la taille de la dernière dimension du tableau
            ReDim Preserve Tableau(1 To 2, 1 To x)
    comment ca marche dans mon cas si je reprend la fonction de ERIIC et je veux remplacer une seule ligne ou colonne???

  13. #33
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re,

    Redim Preserve est là juste pour redimensionné le tableau tout en conservant les données, si tu mets pas Preserve tu perds tes données

    si tu veux remplacer des données (code à voir selon le contexte) sur une ligne ou une colonne,
    il faudra faire une boucle soit en ligne soit en colonnes :

    Ex si veux changer les données en ligne 10 de ton tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For j = 1 to Ubound(MonTab, 2)
       MonTab(10, j) = TOTO(j) 'ou autre, c'est fictif
    Next
    Mais tout cela (le code) est à déterminé selon le contexte

    Edit : petite erreur dans le code corrigé
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  14. #34
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    J'ai pas trop compris par exemple si je fais :
    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
    Function CalculMatrice2(x As Range)
        Dim i      As Long    'pour parcourir les lignes de la matrice
        Dim j      As Long    'pour parcourir les colonnes de la matrice
        Dim n      As Single    'taille de la matrice
        Dim matrice() As Double
        Dim rot As Double   'matrice ligne à remplacer
     rot = Array(2, 2, 2)
     
        n = Application.CountA(x) - 1
        ReDim matrice(1 To n, 1 To n)
        For i = 1 To n
            For j = 1 To n
                If i = j Then
                    matrice(i, j) = 2 * (x(i) + x(i + 1))
               ' ElseIf i > 1 And i <= j Then
                  '  matrice(i, j) = x(i + 1)
                ElseIf i > j And i - j = 1 Then
                    matrice(i, j) = x(i)
                ElseIf j > 1 And j - i = 1 Then
                    matrice(i, j) = x(j)
                   ' Debug.Print matrice(i, j)
                End If
     
    For k = 1 To UBound(matrice)
    matrice(1, j) = rot
    Next k
    Debug.Print matrice(i, j)
            Next
        Next
     
     
     
        CalculMatrice2 = matrice
    End Function

  15. #35
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    dsl moi non plus je vois pas trop ou tu veux en venir, juste à part que tu as un array (Tab. une dimension) don tu veux donner les valeurs à ta matrice
    mais il faudrait être plus clair sur ce que tu veux faire

    en plus un Array de base commence à zéro, et si tu veux donner chaque valeur de ton Array il va falloir lui dire quelle valeur
    Rot(0) puis Rot(1) ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TOTO = Array("MaValeur 1", "MaValeur 2", "MaValeur 3", 4, 5)
    For i = Lbound(TOTO) to Ubound(TOTO)
        Debug.Print TOTO(i)
    Next
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TOTO = Array("MaValeur 1", "MaValeur 2", "MaValeur 3", 4, 5)
    For Each V in TOTO
        Debug.Print V
    Next
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  16. #36
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    RUY,

    Alors j'ai mis un array comme je veux changer la ligne 1 par exemple en appliquant la fonction à 4 valeurs soit un tableau (3,3) juste pour voir. C'est compliqué de percevoir les choses comment elles fonctionnent réellement. mais bon avec un peu d'aide ca va aller.

  17. #37
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut À titre d'exemple - ici on est hors contexte pour faire un code adéquat
    re,

    le 1er code met les valeurs directement dès le 1er passage dans la matrice :
    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
    Function calculmatriceEriic(x As Range)
        Dim i      As Long    'pour parcourir les lignes de la matrice
        Dim j      As Long    'pour parcourir les colonnes de la matrice
        Dim n      As Single    'taille de la matrice
        Dim matrice() As Double
     
        rot = Array(2, 2, 2) 'Tableau à une dimension dont le 1er indice est 0, on aura donc 0, 1, 2 => rot(0) -> 2 - rot(1) -> 2 - rot(2) -> 2
        'Si l'indice du tableau matrice commence à 1 => i = 1 => on aura alors rot(i-1) pour obtenir la 1è valeur du tableau rot (i-1=0) et ainsi de suite
     
        n = Application.CountA(x) - 1
        ReDim matrice(1 To n, 1 To n)
        For i = 1 To n
            For j = 1 To n
                If i = 1 Then
                    matrice(i, j) = rot(j - 1)
                ElseIf i = j Then
                    matrice(i, j) = 2 * (x(i) + x(i + 1))
                ElseIf i > j And i - j = 1 Then
                    matrice(i, j) = x(i)
                ElseIf j > i And j - i = 1 Then
                    matrice(i, j) = x(j)
                End If
            Next
        Next
        calculmatriceEriic = matrice   'valeur à changer pour obtenir toute les valeurs de la matrice
    End Function
    le 2ème code remplace les valeurs de la ligne 1 de matrice :
    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
    Function calculmatriceEriic2(x As Range)
        Dim i      As Long    'pour parcourir les lignes de la matrice
        Dim j      As Long    'pour parcourir les colonnes de la matrice
        Dim n      As Single    'taille de la matrice
        Dim matrice() As Double
     
        rot = Array(2, 2, 2) 'Tableau à une dimension dont le 1er indice est 0, on aura donc 0, 1, 2 => rot(0) -> 2 - rot(1) -> 2 - rot(2) -> 2
        'Si l'indice du tableau matrice commence à 1 => i = 1 => on aura alors rot(i-1) pour obtenir la 1è valeur du tableau rot (i-1=0) et ainsi de suite
     
        n = Application.CountA(x) - 1
        ReDim matrice(1 To n, 1 To n)
        For i = 1 To n
            For j = 1 To n
                If i = j Then
                    matrice(i, j) = 2 * (x(i) + x(i + 1))
                ElseIf i > j And i - j = 1 Then
                    matrice(i, j) = x(i)
                ElseIf j > i And j - i = 1 Then
                    matrice(i, j) = x(j)
                End If
            Next
        Next
     
        For j = 1 To UBound(matrice, 2)
            matrice(1, j) = rot(j - 1)
        Next
     
        calculmatriceEriic2 = matrice   'valeur à changer pour obtenir toute les valeurs de la matrice
    End Function
    Edit : ajout titre
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  18. #38
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    Merci bcp RYU decidement jai du chemin a faire

  19. #39
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2016
    Messages : 69
    Points : 32
    Points
    32
    Par défaut
    bonsoir RYU

    Franchement merci j'étais entrain de regarder le probleme de laminedu63 mais merci quand même.
    Moi je vais aller faire dodo je commence a m'endormi devant le clavier.

Discussions similaires

  1. Boucle sur tous les mots contenus dans un fichier texte
    Par medmaysais dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 12/03/2016, 09h56
  2. Filtres dans les requêtes ou dans les rapports
    Par aureliend8800 dans le forum Webi
    Réponses: 3
    Dernier message: 14/06/2013, 21h12
  3. Placer les points contenus dans un tableau sur un graphe
    Par SandyF dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/09/2009, 17h40
  4. Réponses: 20
    Dernier message: 22/07/2008, 01h28
  5. [XHTML] Variables contenus dans les messages en XHTML
    Par Linoa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 19/09/2005, 12h45

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