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 :

excel 2019 erreur "6" dépassement de capacité


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut excel 2019 erreur "6" dépassement de capacité

    bonjour a tous, je me vois bloqué, avec se type d'erreur "6" 'dépassement de capacité'

    le code a déjà bien fonctionné, mais j'ai récupéré, un format de date différent (comme visible dans se post ci-dessous )

    le scénario est le suivant:

    la source vient d'un fichier csv format date ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    1993012;SA;19930327;19930526.....
    ensuite aussi simple, je récupère la date qui est en indice(2) ; que je mets dans ma colonne 2

    le code d'extraction ci-dessous

    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
     
    Open fichier For Input As #1
        Do While Not EOF(1)
        Line Input #1, texte
            If compteur > 1 Then
                elements = Split(texte, ";")
                'Cells(ligne, 2).Value = DateValue(Format(elements(2), "dd/mm/yyyy")) '( sur se format de date, le code fonctionne correctement )
                Cells(ligne, 2).Value = DateValue(Format(elements(2), "yyyymmdd"))
                For i = 3 To 8 'Correspondance - décalage une colonne
                    Cells(ligne, i).Value = elements(i + 1)
                Next i
                ligne = ligne + 1
            End If
             'MsgBox texte
            compteur = compteur + 1
        Loop
    Close #1
    mais je m'aperçois, que la ligne : DateValue(Format(elements(2), "yyyymmdd" me pose problème, et je comprends pas le 'dépassement de capacité'

    tous, est spécifiés dans mon fichier csv, d'où je veux extraire la date; mais pour la méthode format, je l'ai correctement renseigné ?? ( extrait du fichier csv plus haut )
    merci a tous solutions de contournements , je veux exploité aussi les dates de "1993"

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Salut,

    Peut être en passant par une regex:
    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
    Public Function GetDate(ByVal Value As String) As Date
        Dim Rx As Object    '// VBScript.RegExp
        Set Rx = CreateObject("VBScript.RegExp")
     
        Rx.MultiLine = False
        Rx.Global = False
            '// Format attendu: yyyymmdd
        Rx.Pattern = "(\d{4})((?:0[1-9])|(?:1[012]))((?:0[1-9])|(?:[12]\d)|(?:3[01]))"
     
            '// Si l'assertion se déclenche,
            '// C'est que l'argument donné à la fonction n'est pas bon
            '// Faute de programmation
        Debug.Assert Rx.Test(Value)
     
        Dim Jour As Integer
        Jour = CInt(Rx.Replace(Value, "$3"))
     
        Dim Mois As Integer
        Mois = CInt(Rx.Replace(Value, "$2"))
     
        Dim Annee As Integer
        Annee = CInt(Rx.Replace(Value, "$1"))
        GetDate = DateSerial(Annee, Mois, Jour)
    End Function

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 238
    Par défaut
    Hello,
    Citation Envoyé par deedolith Voir le message
    Peut être en passant par une regex:
    toujours en regex mais en plus simple car pas de vérification que la chaîne date est valide. Accepte des chaînes date sous forme yyyymmd ou yyyymmdd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function GetDate(ByVal Value As String) As Date
        Dim Rx As Object    '// VBScript.RegExp
        Set Rx = CreateObject("VBScript.RegExp")
        Rx.Pattern = "(\d{4})(\d{2})(\d{1,2})"
        GetDate = DateValue(Rx.Replace(Value, "$3/$2/$1"))
    End Function
     
     
    Sub TestDateJP()
      Debug.Print Format(GetDate(1993022), "dd/mm/yyyy")
      Debug.Print Format(GetDate(19981225), "dd/mm/yyyy")
    End Sub
    Ami calmant, J.P

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut

    Bonjour à deedolith, et merci pour l'exemple donné, que je vais essayé...je donnerai la suite

    et merci à jurassic pork, de son exemple aussi donné, que je vais essayé

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 282
    Par défaut
    Bravo à vous 2 , mais après la remarque de jurassic pork, j'ai pris mes précautions et avoir essayé quand même

    la fonction de deedoliht , qui m'a mis quelques erreurs .


    j'ai essayé la fonction de jurrassic pork; qui est un concentré de ligne essentiel; et simple bravo...!! pour cette robustesse .

    mon code se déroule correctement .....

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Citation Envoyé par amateur_will Voir le message
    la fonction de deedoliht , qui m'a mis quelques erreurs .
    heu ouais ?
    Lesquelles ?

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/05/2024, 02h17
  2. Réponses: 5
    Dernier message: 01/05/2024, 00h17
  3. [Excel 2019] Erreur de compilation sur appel d'une fonction
    Par amateur_will dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/10/2023, 14h20
  4. [Excel 2019] erreur de compilation "Type d'arguments ByRef incompatible"
    Par amateur_will dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/09/2023, 00h08
  5. Export requete texte -> Excel : erreur quote
    Par Sam 069 dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/07/2007, 15h27

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