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 :

Utilisation de la Fonction Int() (partie entière)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 32
    Par défaut Utilisation de la Fonction Int() (partie entière)
    Bonjour,

    Je cherche à faire un programme qui regarde les données d'une feuille et recopie ces données dans une autre feuille seulement si les jours correspondent. Comme Dans une des feuilles la date contient aussi l'heure, je veux extraire la partie entière de la date (donc le jour) pour comparer avec l'autre feuille.
    J'ai vu qu'on pouvait utiliser la fonction Int()

    Pour l'instant mon programme donne ça :
    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
    Sub ExtraitPluie()
    Dim i As Integer
    Dim j As Integer
    Dim Jour1 As Integer
    Dim Jour2 As Double
     
    i = 3
    j = 2
    Jour1 = 0
     
    Do
    Do
        Jour2 = Sheets("ExtraitVent").Range("A" & i).Value
        Jour1 = Int(Jour2)
    If Jour1 = Sheets("PluieCol").Range("D" & j).Value Then
        Sheets(ExtraitVent).Range("D" & i).Value = Sheets("PluieCol").Range("E" & j).Value
    End If
    i = i + 1
    Loop
    j = j + 1
    Loop
     
    End Sub
    Cependant, quand je lance la macro cela ne marche pas et le débogueur m'indique un "dépassement de capacité" en surlignant "jour1=Int(Jour2)"...
    Je ne vois vraiment pas ce qui cloche!

    Merci d'avance pour votre aide!

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Existe la fonction Day (voir ton aide en ligne ou F1) et elle te retourne un entier.

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 32
    Par défaut
    Bonjour, merci pour ta réponse, j'ai intégré la fonction Day à la place de Int, mais cela me dit toujours "dépassement de capacité", en surlignat cette fois i+1 dans la boucle...

    En fait je ne sais pas ce que "dépassement de capacité" veut dire...

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par petiteabeille64 Voir le message
    Bonjour, merci pour ta réponse, j'ai intégré la fonction Day à la place de Int, mais cela me dit toujours "dépassement de capacité", en surlignat cette fois i+1 dans la boucle...

    En fait je ne sais pas ce que "dépassement de capacité" veut dire...
    Combien de lignes as-tu à lire avec i et avec j ?
    Tu as défini i et j comme Integer et ils ont donc la limite d'un entier (voir cette limite dans ton aide en ligne et voir également quelle est la limite d'un Long)

    EDIT : tu devrais par ailleurs lire avec attention cette rédaction de ouskel'n'or :

    http://www.developpez.net/forums/d56...-lutilisation/
    puis indenter ton code et utiliser les balises ad hoc pour le présenter sur ce forum.

  5. #5
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 32
    Par défaut
    bonjour,

    j'ai 2200 j et 1200 i.
    Dans l'aide, Long a un maximum de 2 147 483 647 donc ça devrait pas coincer à ce niveau...

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Je ne vois pas de sortie dans tes deux boucles !
    Elles vont donc à l'infini !!! (et même en déclarant i et j en long, ma foi ...)

Discussions similaires

  1. [XL-2007] Erreur de calcul de la fonction Int() partie entiére d'un Nb en VB
    Par GOLDINGMAROC dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 01/03/2012, 17h31
  2. fonction avec partie entière
    Par KrusK dans le forum Mathématiques
    Réponses: 4
    Dernier message: 15/01/2008, 22h37
  3. débutant:fonction de la partie entière
    Par hachdotnet dans le forum VB.NET
    Réponses: 1
    Dernier message: 01/03/2007, 13h29
  4. de float à int : partie entière automatique ?
    Par stokastik dans le forum C
    Réponses: 16
    Dernier message: 22/08/2006, 16h51
  5. Fonction retournant la partie entière d'un nombre
    Par annedjomo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/11/2004, 15h58

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