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 :

problème de bug


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 11
    Par défaut problème de bug
    bonjour,
    Pouvez-vous m'aider pour ce bug?

    Nom : Capture.PNG
Affichages : 501
Taille : 7,7 Ko

    Nom : Capture1.PNG
Affichages : 422
Taille : 20,5 Ko


    Merci à tous

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    En survolant avec la souris la variable "Pan_lgdb", quelle est sa valeur? quelle est la valeur de i?

    Cdlt

  3. #3
    Membre habitué
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 11
    Par défaut Bonjour,
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    En survolant avec la souris la variable "Pan_lgdb", quelle est sa valeur? quelle est la valeur de i?

    Cdlt
    Bonjour
    Pan_lgdb =8 , ou puis-je trouver la valeur i

  4. #4
    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
    Une chose m'étonne : il n'y a pas de majuscule à Value dans la ligne jaune.

    Comment i et j ont-ils été déclarés ?

  5. #5
    Membre habitué
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 11
    Par défaut
    Nom : Capture3.PNG
Affichages : 384
Taille : 31,6 Ko

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Pan_lgdb =8 , ou puis-je trouver la valeur i
    en survolant le "i"

    Suite à la remarque de Menhir et que je n'avais pas vu, il y a quelque chose d'anormal avec le mot "value", en effet, ce dernier devrait commencer par une majuscule. Il serait bien que l'on puisse voir la macro dans son intégralité ou du moins du début jusqu'à cette ligne.

    Edit: vous m'avez devancé

  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
    Afficher la macro sous forme de copie d'écran, ce n'est pas une bonne idée étant donné que l'on ne peut pas copier le code pour le tester ou le modifier.
    Il vaudrait mieux faire une copie texte, de préférence encadrée par des balises CODE (le bouton #).

    De plus, tu ne réponds pas à la question sur la déclaration des variable i et j.

  8. #8
    Membre habitué
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 11
    Par défaut
    en fait c'est une macro pour charger un fichier .txt, j'ai fait l’essai avec un autre fichier la macro passe et le fichier se charge.
    Le problème viens surement de fichier .txt quelques chose dedans doit-être différent.
    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    Sub InputFilePanam(Pos As Integer, v1 As Integer, v2 As Integer, vSiteReal As String, ByVal WsCléPANAM As String)
        Dim i As Long, Lg As Long: Dim j As Long
        Dim cl As Integer
        Dim temp As Variant
        Dim vDateDeb As Date
        Dim vDateFin As Date
        Dim wbREF As String, WbPan As String
     
        '====Calcul variable Delta====
        OpenVariableDelta
     
        '====Recuperation date de debut et fin outil====
        temp = Split(Ihm_Panam.LB_Param.Caption, "|")
        vDateDeb = temp(0)
        vDateFin = temp(1)
     
        '====Initialisation des variables====
        FlagTot = 0
        FlagInf = 0
        FlagSup = 0
     
        '====Recuperation des données du fichier====
        Application.ScreenUpdating = False
        wbREF = ActiveWorkbook.Name
        Workbooks.Open filename:=CStr(Ihm_Panam.ListBox1.List(Pos, 0)), ReadOnly:=True
        WbPan = ActiveWorkbook.Name
        'Workbooks(WbPan).Activate
     
        temp = Split(Cells(3, 1).value, "|")
        L1 = temp(1)
        L2 = temp(2) & "-" & temp(3)
        temp = Split(Cells(5, 1).value, "|")
        l3 = temp(1)
     
        'YCT-modifié pour intégrer les fichiers .txt > 65000 lignes. passer de 65000 à 650000
        Erase data
        ReDim data(Cells(650000, 1).End(xlUp).Row - Pan_Lgdb, 6)
     
        i = 1: j = 1
        Do While Cells(i + Pan_Lgdb, 1).value <> ""
            temp = Split(Cells(i + Pan_Lgdb, 1).value, "|")
            If temp(Pan_Dat) <> "" And IsDate(temp(Pan_Dat)) And CStr(vSiteReal) >= temp(Pan_Sit) Then
     
                data(j, 1) = CStr(temp(Pan_Sit))
                data(j, 2) = CStr(temp(Pan_Ser))
                data(j, 3) = CStr(temp(Pan_Cod))
                data(j, 4) = CStr(Ihm_Panam.ListBox1.List(Pos, 1)) 'STF
                data(j, 5) = CStr(temp(Pan_Flo))
                data(j, 6) = CDate(temp(Pan_Dat))
                j = j + 1
            End If
            i = i + 1
     
        Loop
        ActiveWorkbook.Close
     
        '====Traitement des données====
        Application.ScreenUpdating = False
        Ihm_Progress.Caption = "Traitement de : " & WsCléPANAM
        vDeb = Now
        If v2 = 1 Then
            Ihm_Progress.TX_Info.Caption = "Traitement et import du fichier...":
        Else
            Ihm_Progress.TX_Info.Caption = "Traitement et import des fichiers : " & v1 & "/" & v2
        End If
     
        For i = 1 To UBound(data, 1)
            'Controle du site
            If CStr(data(i, 1)) = CStr(vSiteReal) Then
              ' Optimisation : filte sur code site
                ' joh v5 suppression des blancs dans le code opération juin 2017
                data(i, 3) = Trim(Replace(data(i, 3), " ", ""))
                ' joh v5 suppression des blancs dans le code opération juin 2017
                'optimisation
                If Lg <> 0 Then
                    If data(i, 2) & data(i, 3) & data(i, 4) & data(i, 5) <> data(i - 1, 2) & data(i - 1, 3) & data(i - 1, 4) & data(i - 1, 5) Then
                    Lg = ScanLine(i)
                    End If
                Else
                    Lg = ScanLine(i)
                End If
     
     
                Chn.Cells(Lg, Chn_Ser) = data(i, 2)
                Chn.Cells(Lg, Chn_Cod).NumberFormat = "@" 'Format texte pour les OM
                Chn.Cells(Lg, Chn_Cod) = data(i, 3)
                Chn.Cells(Lg, Chn_Com) = L1 & "-" & L2 & "-" & l3
                Chn.Cells(Lg, Chn_Stf) = data(i, 4)
                Chn.Cells(Lg, Chn_Flo) = data(i, 5)
                'Controle des dates (appartient ou non à l'horizon)
                'If DateValue(Data(i, 6)) < vDateDeb Then
                If data(i, 6) < vDateDeb Then
                    FlagInf = FlagInf + 1
                'ElseIf DateValue(Data(i, 6)) > vDateFin Then
                ElseIf data(i, 6) > vDateFin Then
                    FlagSup = FlagSup + 1
                Else
                    cl = ScanColumn(i)
                    If cl = -1 Then MsgBox "Alerte "
                    Chn.Cells(Lg, cl) = Chn.Cells(Lg, cl) + 1
                End If
                FlagTot = FlagTot + 1
            End If
            RefreshProgress
        Next i
    End Sub

  9. #9
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Je vois qu'il y a un passage de paramètres dans le nom de la macro, c'est donc qu'elle est appelée par une autre macro qui lui fournit les valeurs de ces paramètres.
    Le problème ne viendrait-il pas de la macro appelante?
    Regardez la valeurs de ses paramètres dans la macro principale, mettez un point d'arrêt sur la ligne avant d'attaquer cette dernière.

    Cdlt

  10. #10
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour le fil,
    Citation Envoyé par Menhir Voir le message
    Une chose m'étonne : il n'y a pas de majuscule à Value dans la ligne jaune.

    Je ne vois qu'une seule raison :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim value
    Sub InputFilePanam(Pos As Integer, v1 As Integer, v2 As Integer, vSiteReal As String, ByVal WsCléPANAM As String)
    '...
    '...
    i = 1: j = 1
      Do While Cells(i + Pan_Lgdb, 1).value <> ""
        temp = Split(Cells(i + Pan_Lgdb, 1).value, "|")

Discussions similaires

  1. Problème ou bug ? Tableau dans une boucle
    Par nico1811 dans le forum Ruby
    Réponses: 12
    Dernier message: 25/01/2010, 09h50
  2. Réponses: 6
    Dernier message: 21/07/2009, 16h06
  3. Problème Calendar (Bug ?)
    Par eighty_three dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2008, 17h58
  4. [MySQL] Problème Calendrier bug?
    Par mikosworld dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/09/2007, 23h34
  5. Probléme ou BUG (PGSQLv8)?
    Par localhost dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 01/03/2005, 16h51

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