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 :

Error Overflow sur worksheet


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut Error Overflow sur worksheet
    Bonjour,
    Le code suivant permet de supprimer les lignes qui ne sont pas comprise entre les dates rentrees par l'utilisateur. Mon probleme se situe au niveau de la ligne 37, Vba me renvoie l'erreur overflow.
    J'ai d'abord pense que le probleme se situe au niveau de la variable D1 et j'ai donc passe en Long toutes mes variables. Mais l'erreur a persistee du coup je pense que le probleme est au niveau de la worsheets, j'ai verifie le nom est le bon du coup je comprends pas ou ca bloque.


    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
    Private Sub CommandButton1_Click()
    Dim D1 As Long
    Dim D2 As Long
    Dim EndNolig As Long
    Dim Nolig As Long
    Dim D1Lig As Long
    Dim D2Lig As Long
    Dim compt As Boolean
    Dim j As Long
    Dim i As Long
    '****************REFRESH****************
    Dim lastrow As Long
    Worksheets("Do not Alter 501 source").Activate
    lastrow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 2
    Range("A1:D" & lastrow).Copy
    Worksheets("Do not Alter 501").Activate
    ActiveSheet.Range("A1").Select
    ActiveSheet.Paste
    Application.ScreenUpdating = False
    Application.Calculation = False
    '*******************Date creation**********
    EndNolig = Worksheets("TED Defects 501").Range("A" & Rows.Count).End(xlUp).Row
    For Nolig = EndNolig To 2 Step -1
        Worksheets("Do not Alter 501").Cells(Nolig + 2, 4).Value = Worksheets("TED Defects 501").Cells(Nolig, 1).Value
    Next
    EndNolig = Worksheets("TED Defects 501").Range("A" & Rows.Count).End(xlUp).Row + 2
     
    For Nolig = EndNolig To 2 Step -1
        Worksheets("Do not Alter 501").Cells(Nolig, 4).Value = Val(Replace(Cells(Nolig, 4), "/", ""))
    Next
    '******************** tri****************************
    D1 = UserForm1.TextBox1.Value
    D2 = UserForm1.TextBox2.Value
    Nolig = EndNolig
    For Nolig = EndNolig To 3 Step -1
     
        If Worksheets("Do not Alter 501").Cells(Nolig, 4).Value = D1 Then
            D1Lig = Nolig
        End If
        If Worksheets("Do not Alter 501").Cells(Nolig, 4).Value = D2 And compt = 0 Then
            D2Lig = Nolig
            compt = 1
        End If
        Nolig = Nolig - 1
    Next
     
    For j = EndNolig To D2Lig + 1 Step -1
        Worksheets("Do not Alter 501").Cells(j, 1).EntireRow.Delete Shift:=xlUp
    Next
    For i = D1Lig - 1 To 4 Step -1
        Worksheets("Do not Alter 501").Cells(i, 1).EntireRow.Delete Shift:=xlUp
    Next
    UserForm1.Hide
    Application.ScreenUpdating = True
    Application.Calculation = True
    End Sub
    De plus sur une ancienne version du code l'erreur n'apparait pas voici le 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
    Private Sub CommandButton1_Click()
    Dim D1 As Long
    Dim D2 As Long
    Dim EndNolig As Long
    Dim Nolig As Long
    Dim D1Lig As Long
    Dim D2Lig As Long
    Dim compt As Boolean
    Dim j As Long
    Dim i As Long
    '****************REFRESH****************
    Dim lastrow As Long
    Worksheets("Do not Alter 501 source").Activate
    lastrow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 2
    Range("A1:D" & lastrow).Copy
    Worksheets("Do not Alter 501").Activate
    ActiveSheet.Range("A1").Select
    ActiveSheet.Paste
    Application.ScreenUpdating = False
    Application.Calculation = False
     
    EndNolig = Worksheets("TED Defects 501").Range("A" & Rows.Count).End(xlUp).Row + 2
     
    D1 = UserForm1.TextBox1.Value
    D2 = UserForm1.TextBox2.Value
    Nolig = EndNolig
    For Nolig = EndNolig To 3 Step -1
     
        If Worksheets("Do not Alter 501").Cells(Nolig, 4).Value = D1 Then
            D1Lig = Nolig
        End If
        If Worksheets("Do not Alter 501").Cells(Nolig, 4).Value = D2 And compt = 0 Then
            D2Lig = Nolig
            compt = 1
        End If
        Nolig = Nolig - 1
    Next
     
    For j = EndNolig To D2Lig + 1 Step -1
        Worksheets("Do not Alter 501").Cells(j, 1).EntireRow.Delete Shift:=xlUp
    Next
    For i = D1Lig - 1 To 4 Step -1
        Worksheets("Do not Alter 501").Cells(i, 1).EntireRow.Delete Shift:=xlUp
    Next
    UserForm1.Hide
    Application.ScreenUpdating = True
    Application.Calculation = True
    End Sub
    Pouvez vous m'expliquer pourquoi ca ne marche pas ?

    Cordialement
    Adam

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Quelle est la valeur de NoLig au moment de l'erreur ?

    Si mes souvenirs sont bons, l'erreur overflow signifie plutôt un dépassement de capacité..

    Vu où ça plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Do not Alter 501").Cells(Nolig, 4).Value
    je dirais que Cells(Nolig,4) est en dépassement de capacité. peux-tu vérifier la valeur de Nolig ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre expérimenté Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 175
    Par défaut
    Bonjour Adam,

    A première vue, je ne vois pas d'erreur.
    j'ai quelques remarque pour "purifié" ton code

    * mettre un Option Explicit tout en au du code --> ça t'oblige à avoir un code carré qui tourne rond

    * quand tu écrits If Worksheets("Do not Alter 501").Cells(Nolig, 4).Value = D1 Then tu demande de comparer un string vs long

    Sinon mets ton fichier en pièces jointe si tu veux plus d'aide, là je sèche

    a+

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut
    Citation Envoyé par illight Voir le message
    Quelle est la valeur de NoLig au moment de l'erreur ?

    Si mes souvenirs sont bons, l'erreur overflow signifie plutôt un dépassement de capacité..

    Vu où ça plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Do not Alter 501").Cells(Nolig, 4).Value
    je dirais que Cells(Nolig,4) est en dépassement de capacité. peux-tu vérifier la valeur de Nolig ?
    Nolig =327 au moment ou le programme plante c'est a dire qu'il plante a la premiere passe du for (Nolig=EndNolig)
    cordialement

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    D'ailleurs, D1 c'est pas une date ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut
    Citation Envoyé par lucasgaetan Voir le message
    Bonjour Adam,


    * quand tu écrits If Worksheets("Do not Alter 501").Cells(Nolig, 4).Value = D1 Then tu demande de comparer un string vs long

    a+
    En fait j'ai transforme ma date JJ/MM/YYYY en un nombre JJMMYYYY du coup normalement je compare bien des nombres long
    je te joins le fichier, j'ai du supprimer la page "Do not Alter 501 source" car le fichier etait trop lourd
    cordialement

    Citation Envoyé par illight Voir le message
    D'ailleurs, D1 c'est pas une date ?
    D1 est une date sous le format JJMMYYYY
    cordialement
    Fichiers attachés Fichiers attachés

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    pour une date utiliser alors la propriété Value2 pour comparer avec une donnée de type Long

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut
    ma date est passe en nombre dans ce cas donc j'ai pas besoin de l'utiliser si ?
    Cordialement

  9. #9
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Du moment que cela fonctionne, peu importe …

  10. #10
    Membre expérimenté Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 175
    Par défaut
    re bonjour,

    rapidement, j'ai pas le temps:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Nolig = EndNolig To 3 Step -1
        If Worksheets("Do not Alter 501").Cells(Nolig, 4).Value2 = D1 Then
            D1Lig = Nolig
        End If
        If Worksheets("Do not Alter 501").Cells(Nolig, 4).Value2 = D2 And compt = 0 Then
            D2Lig = Nolig
            compt = 1
        End If
        Nolig = Nolig - 1 'Je pense qu'il faut supprimer cette ligne de code, elle te fait sauter une ligne sur deux dans ton fichier excel
    Next Nolig
    la réponse de Marc-L etait juste : Value2

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut
    Ah merci pour cette erreur que je n'avais pas vu
    Cordialement

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut
    Citation Envoyé par Marc-L Voir le message

    Bonjour,

    pour une date utiliser alors la propriété Value2 pour comparer avec une donnée de type Long

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    J'essaye cette voix, du coup j'ai supprime la partie du code qui me permettait d'avoir la date sous la forme d'un nombre, du coup j'utilise une date de type dd month YYYY, j'aimerais du coup rentrer ma date sous cette forme, mais la methode .Value2 ne semble pas etre reconnu quand elle est utilise avec une textbox est ce normal ?

    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
    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
     
    Option Explicit
    Private Sub CommandButton1_Click()
    Dim D1 As Long
    Dim D2 As Long
    Dim EndNolig As Long
    Dim Nolig As Long
    Dim D1Lig As Long
    Dim D2Lig As Long
    Dim compt As Boolean
    Dim j As Long
    Dim i As Long
    '****************REFRESH****************
    Dim lastrow As Long
    Worksheets("Do not Alter 501 source").Activate
    lastrow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 2
    Range("A1:D" & lastrow).Copy
    Worksheets("Do not Alter 501").Activate
    ActiveSheet.Range("A1").Select
    ActiveSheet.Paste
    Application.ScreenUpdating = False
    Application.Calculation = False
    '***************** TRI******************
    EndNolig = Range("A" & Rows.Count).End(xlUp).Row
    D1 = UserForm1.TextBox1.Value2
    D2 = UserForm1.TextBox2.Value2
    For Nolig = EndNolig To 3 Step -1
        If Worksheets("Do not Alter 501").Cells(Nolig, 2).Value2 = D1 Then
            D1Lig = Nolig
        End If
        If Worksheets("Do not Alter 501").Cells(Nolig, 2).Value2 = D2 And compt = 0 Then
            D2Lig = Nolig
            compt = 1
        End If
    Next
     
    For j = EndNolig To D2Lig + 1 Step -1
        Worksheets("Do not Alter 501").Cells(j, 1).EntireRow.Delete Shift:=xlUp
    Next
    For i = D1Lig - 1 To 4 Step -1
        Worksheets("Do not Alter 501").Cells(i, 1).EntireRow.Delete Shift:=xlUp
    Next
    UserForm1.Hide
    Application.ScreenUpdating = True
    Application.Calculation = True
    End Sub
    Merci pour l'idee
    Cordialement

  13. #13
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Oui tout à fait normal comme indiqué dans l'aide de cette propriété !


    Pour du texte, voir par exemple du côté des fonctions CDate et DateValue à affecter dans une variable de type Long.

    Pour rappel, tout ceci est directement consultable et donc, à fortiori, dénichable, dans l'aide VBA intégrée, à portée de clic …

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut
    le code suivant me renvoie une erreur de type mistmatch(run time errror 13) a la ligne 28 alors aue je compare 2 Longs ? j' ai essaye de transdormer le type de D1 et D2 en type Date mais l'erreur persiste
    peut-on comparer 2 dates de cette maniere ?

    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
    Option Explicit
    Private Sub CommandButton1_Click()
    Dim D1 As Long
    Dim D2 As Long
    Dim EndNolig As Long
    Dim Nolig As Long
    Dim D1Lig As Long
    Dim D2Lig As Long
    Dim compt As Boolean
    Dim j As Long
    Dim i As Long
    '****************REFRESH****************
    Dim lastrow As Long
    Worksheets("Do not Alter 501 source").Activate
    lastrow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 2
    Range("A1:D" & lastrow).Copy
    Worksheets("Do not Alter 501").Activate
    ActiveSheet.Range("A1").Select
    ActiveSheet.Paste
    Application.ScreenUpdating = False
    Application.Calculation = False
    '***************** TRI******************
    EndNolig = Range("A" & Rows.Count).End(xlUp).Row
    D1 = DateValue(UserForm1.TextBox1.Value)
    D2 = DateValue(UserForm1.TextBox2.Value)
    For Nolig = EndNolig To 3 Step -1
        If DateValue(Worksheets("Do not Alter 501").Cells(Nolig, 2).Value) = D1 Then
            D1Lig = Nolig
        End If
        If DateValue(Worksheets("Do not Alter 501").Cells(Nolig, 2).Value) = D2 And compt = 0 Then
            D2Lig = Nolig
            compt = 1
        End If
    Next
     
    For j = EndNolig To D2Lig + 1 Step -1
        Worksheets("Do not Alter 501").Cells(j, 1).EntireRow.Delete Shift:=xlUp
    Next
    For i = D1Lig - 1 To 4 Step -1
        Worksheets("Do not Alter 501").Cells(i, 1).EntireRow.Delete Shift:=xlUp
    Next
    UserForm1.Hide
    Application.ScreenUpdating = True
    Application.Calculation = True
    End Sub

  15. #15
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Oh que non, ah que coucou ‼

    Dans la ligne n°28, il n'y a qu'une seule donnée de type Long

    … sinon il n'y aurait point d'erreur !


  16. #16
    Membre expérimenté Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 175
    Par défaut
    re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Do not Alter 501").Cells(Nolig, 4).Value2

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut
    j'ai encore l'erreur meme avec le 2

    Avec ce code j'obtiens une erreur de type mismatch :
    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
     
    Option Explicit
    Private Sub CommandButton1_Click()
    Dim D1 As Long
    Dim D2 As Long
    Dim EndNolig As Long
    Dim Nolig As Long
    Dim D1Lig As Long
    Dim D2Lig As Long
    Dim compt As Boolean
    Dim j As Long
    Dim i As Long
     
    '****************REFRESH****************
    Dim lastrow As Long
    Worksheets("Do not Alter 501 source").Activate
    lastrow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 2
    Range("A1:D" & lastrow).Copy
    Worksheets("Do not Alter 501").Activate
    ActiveSheet.Range("A1").Select
    ActiveSheet.Paste
    Application.ScreenUpdating = False
    Application.Calculation = False
    '***************Date********************
    For Nolig = 4 To lastrow
        Worksheets("Do not Alter 501").Cells(Nolig, 2).Value = Worksheets("TED Defects 501").Cells(Nolig - 2, 2).Value
    Next
     
    '***************** TRI******************
    EndNolig = Range("A" & Rows.Count).End(xlUp).Row
    D1 = DateValue(UserForm1.TextBox1.Value)
    D2 = DateValue(UserForm1.TextBox2.Value)
    For Nolig = EndNolig To 3 Step -1
        If DateValue(Worksheets("Do not Alter 501").Cells(Nolig, 2).Value2) = D1 Then
            D1Lig = Nolig
        End If
        If DateValue(Worksheets("Do not Alter 501").Cells(Nolig, 2).Value2) = D2 And compt = 0 Then
            D2Lig = Nolig
            compt = 1
        End If
    Next
     
    For j = EndNolig To D2Lig + 1 Step -1
        Worksheets("Do not Alter 501").Cells(j, 1).EntireRow.Delete Shift:=xlUp
    Next
    For i = D1Lig - 1 To 4 Step -1
        Worksheets("Do not Alter 501").Cells(i, 1).EntireRow.Delete Shift:=xlUp
    Next
    UserForm1.Hide
    Application.ScreenUpdating = True
    Application.Calculation = True
    End Sub
    Je ne comprends pas bien quand il faut utiliser la fonction .value2 du coup comme le type etait pas bon je me suis dit que ca venait de D1 et du coup je l'ai code comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    D1 = DateValue(UserForm1.TextBox1.Value2)
    la foncion?method .Value2 n'est alors pas reconnu, du coup je suis repasse sur le code precedant mais j'ai toujours la meme erreur sans comprendre pourquoi
    Vous pouvez m'expliquer pourquoi les types sont pas les meme ?
    Merci de votre comprehension
    Cordialement

  18. #18
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    C'est simple pourtant !
    Exemple pour la propriété Value2 : y positionner le curseur puis appuyer sur la touche

    puis vérifier à quoi elle s'applique et ce qu'elle renvoie !

  19. #19
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 60
    Par défaut
    Mais j'ai essaye d'avoir l'aide avec F1 mais je recois un message comme quoi il ne le trouve pas dans la bilbiotheque
    Nom : untitled2.JPG
Affichages : 181
Taille : 14,6 Ko
    Je suis encore novice sur VBA est j'ai un peu de mal a saisir toute la logique sur ce logiciel...
    cordialement

  20. #20
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Et la recherche sur le net ? C'est votre sport favori !


    Tiens un exemple : (lien sur l'image !)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème vidéo et overflow sur Mac
    Par gregmab dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 22/02/2007, 18h28
  2. [SQL Server 2000] Attach: error 1813 sur log
    Par Gugli dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/09/2006, 09h15
  3. [XHTML][CSS] Overflow sur DIV sans taille déterminée
    Par pingos dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 20/08/2006, 15h37
  4. Probleme Object Error Expected sur un OnClick
    Par herbert dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/07/2006, 20h24
  5. Parse error: unexpected $ sur la dernière ligne..
    Par zamoto dans le forum Langage
    Réponses: 6
    Dernier message: 01/06/2006, 12h16

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