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 :

Demander une correction de code de reconstruction de la matrice


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 108
    Par défaut Demander une correction de code de reconstruction de la matrice
    Bonjour les professeurs de cet édifice géant

    J'ai le code suivant et montre une erreur en partie parce que je ne connais pas la raison pour laquelle j'espère corriger ce 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    Dim Cll
    Private Sub TextBox3_Change()
    Dim C, Ck
    Dim Cl As Integer
    Dim Ar
    Dim Arr()
    Dim Sh As Worksheet
    '------------------------------------------------------------------
    Set Sh = Sheets("Sheet2")
     
    With Me
        .ListBox1.Clear
        Cl = Val(.ComboBox1.ListIndex + 1)
    End With
    '------------------------------------------------------------------
    With Sh
    '------------------------------------------------------------------
    Ar = .Range("A4:K" & .Cells(.Rows.Count, "C").End(xlUp).Row).Value
    '------------------------------------------------------------------
    For i = LBound(Ar, 1) To UBound(Ar, 1)
    '------------------------------------------------------------------
    If Me.CheckBox1.Value = False Then
    Ck = InStr(1, Ar(i, Cl), TextBox3, vbTextCompare)
    Else
    Ck = (InStr(1, Ar(i, Cl), TextBox3, vbTextCompare) And (CDate(Ar(i, 2)) >= CDate(Me.TextBox1) And CDate(Ar(i, 2)) <= CDate(Me.TextBox2)))
    End If
    '------------------------------------------------------------------
    If Ck Then
    ii = ii + 1
        ReDim Preserve Arr(1 To 12, 1 To ii)
        If IsDate(Arr(2, ii)) Then Arr(2, ii) = Format(Arr(2, ii), DtF)
        Arr(1, ii) = Ar(i, 1)
        Arr(2, ii) = Ar(i, 2)
        Arr(3, ii) = Ar(i, 3)
        Arr(4, ii) = Ar(i, 4)
    End If
    Next i
    '------------------------------------------------------------------
    If ii Then
    '------------------------------------------------------------------
    Arm = Untl_A(Application.Transpose(Arr))
    '------------------------------------------------------------------
    If Cll Then
    'Ajouter des lignes au tableau
    '------------------------------------------------------------------
    ReDim Arr(1 To 12, ii + 1 To (ii + 1 + Cll)) '''<<< Ici montre une erreur
    For x = LBound(Arm, 1) To UBound(Arm, 1)
            Arr(1, x) = Arm(1, x)
            Arr(2, x) = Arm(2, x)
            Arr(5, x) = Arm(5, x)
    Next x
    End If
    '------------------------------------------------------------------
    Me.ListBox1.Column = Arr
    '------------------------------------------------------------------
    End If
    End With
    End Sub
    Private Function Untl_A(Ar) As Variant
    Dim A
    Dim Ws As Worksheet
    Dim Nw_Arr()
    Dim Nw
    Dim Aa
    Dim i, ii
    Set Ws = Sheets("Sheet1")
    With Ws
    A = .Range("B4:F" & .Cells(.Rows.Count, "D").End(xlUp).Row).Value
    r = UBound(Ar, 1) + 1
    lc = UBound(Ar, 2)
    For i = LBound(Ar, 1) To UBound(Ar, 1)
        Nw = Ar(i, 1)
        For ii = LBound(A, 1) To UBound(A, 1)
        If InStr(1, A(ii, 2), Ar(1, i)) Then
           If A(ii, 2) <> "" Then
            Cll = Cll + 1
            ReDim Preserve Nw_Arr(1 To r, 1 To Cll)
             Nw_Arr(1, Cll) = A(ii, 1)
             Nw_Arr(2, Cll) = A(ii, 2)
             Nw_Arr(5, Cll) = A(ii, 5)
           End If
        End If
        Next ii
    Next i
    If Cll Then Untl_A = Nw_Arr
    End With
    End Function

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par alidroos Voir le message
    J'ai le code suivant et montre une erreur
    Quel est le message d'erreur ?
    Quelle ligne de code est désignée par le débugage ?

  3. #3
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 108
    Par défaut
    Merci d'avoir interagi avec moi

    Le message d'erreur apparaît dans cette partie du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If Cll Then
    'Ajouter des lignes au tableau
    '------------------------------------------------------------------
    ReDim Arr(1 To 12, ii + 1 To (ii + 1 + Cll)) '''<<< Ici montre une erreur
    For x = LBound(Arm, 1) To UBound(Arm, 1)
            Arr(1, x) = Arm(1, x)
            Arr(2, x) = Arm(2, x)
            Arr(5, x) = Arm(5, x)
    Next x
    End If

  4. #4
    Membre très actif Avatar de tony76
    Homme Profil pro
    Développeur pour le plaisir....
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur pour le plaisir....

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Par défaut
    Bonjour,

    Tu as oublié le message d'erreur. (que dit le message ?)

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par alidroos Voir le message
    Le message d'erreur apparaît dans cette partie du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReDim Arr(1 To 12, ii + 1 To (ii + 1 + Cll)) '''<<< Ici montre une erreur
    La limite inférieure du second indice est incorrecte.
    Voir l'aide de ReDim : https://docs.microsoft.com/fr-fr/off...edim-statement
    [ lowerTo ] upper [ , [ lowerTo ] upper ] . . .
    Lorsque pas explicitement indiqué dans lower, la limite inférieure d’une matrice est contrôlée par la déclaration** Option Base **. La limite inférieure correspond à zéro si aucune instructionOption Base n’est présente.
    De plus, Cll n'est pas typé dans sa déclaration et j'ai bien l'impression qu'il n'est pas non plus renseigné.
    Donc, la limite max aussi me semble douteuse (ainsi que le If qui précède).

  6. #6
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 108
    Par défaut
    Professeur Menhir

    Malheureusement, j'ai ajouté les lignes que j'ai mentionnées, l'erreur persiste

    Voir la pièce jointe sur laquelle je travaille, j'espère trouver une solution. Merci

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne suis pas professeur.

    Citation Envoyé par alidroos Voir le message
    Malheureusement, j'ai ajouté les lignes que j'ai mentionnées, l'erreur persiste
    Quelles lignes ?

    Voir la pièce jointe
    Je n'ouvre pas les fichiers joints, entre autre pour les raisons expliquées ici : https://www.developpez.net/forums/d8...s-discussions/

Discussions similaires

  1. Veuillez corriger ce code SVP.
    Par abouilyas dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/05/2010, 02h31
  2. Visual Studio 2008 Corriger son code en mode debug
    Par shaun_the_sheep dans le forum Visual Studio
    Réponses: 2
    Dernier message: 26/01/2010, 11h53
  3. corriger un code
    Par mgrizzly dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 04/06/2009, 08h56
  4. Comment corriger ce code?
    Par wisdom dans le forum MATLAB
    Réponses: 7
    Dernier message: 29/04/2008, 12h28
  5. corrige mon code svp
    Par NAIMA2 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/02/2007, 09h51

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