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 :

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 habitué
    Femme Profil pro
    responsable r&d innovation food
    Inscrit en
    Mars 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : responsable r&d innovation food

    Informations forums :
    Inscription : Mars 2019
    Messages : 10
    Par défaut Dépassement de capacité
    Bonjour à tous (a nouveau)

    je dois faire une macro qui me permet d'obtenir a partir d'un document qui liste les commandes par jours (4-5 lignes par dates qui correspondent aux differents produits commandés par jour) avec le nombre de produits commandés qui sont répartis par box. Je dois obtenir le nombre de box par jour. et ainsi determine rle nombre de pains de glaces et de grilles par box

    J'avais donc commencé a établir cette macro pour determiner le nombre de ligne utilisées par jour (en fonction du nombre de produits demandés)
    sauf que j'ai un depassement de capacité des ma premiere boucle. donc peut etre qu'en rentrant ma date manuellement meme au format excel mm/jj/aaaa, ensuite il n'arrive pas a les retrouver dans ma colonne D
    si vous avez une solution merci merci merci

    le voici :

    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
    Sub nbbox()
     
    Dim i As Byte
    Dim debut As Byte
    Dim fin As Byte
    Dim dat As Date
     
     
     
    'Entrer la date
    dat = InputBox("Date Format mois/jour/annee", "Date livraison")
     
     
    'Worksheet("BBD").Activate
    i = 10
     
    While Cells(i, 4) <> dat
        i = i + 1
    Wend
     
    debut = i
     
    Do Until Cells(i, 4) <> dat
        i = i + 1
    Loop
     
    fin = i - 1
    MsgBox ("debut")
    MsgBox debut
     
    MsgBox ("fin")
    MsgBox fin
     
    maplage = Range(Cells(debut, 4), Cells(fin, 4))  'range de celules avec la date colonne 4
     
    'nb box : somme colonnes diff de 0 n=14
    Dim der As Long
    der = Range(Cells(9, 14)).End(xlToRight).Column 'nb de box vides ou pleines
     
    Dim som() As Variant 'creer une var tableau pour le nombre de box potentielles
     
    Erase som
     
    Dim h As Integer
    Dim sup As Long
    h = 0
     
    'remplir le tableau avec les sommes
        For colonne = 14 To der                'colonne par box
        sup = 0
            For lignesdates = debut To fin     'lignes dates
                sup = sup + Cells(lignesdates, colonne)
            Next lignesdates
     
            If sup <> 0 Then
            som(h) = sup
            h = h + 1
            Else
            End If
     
            Next
     
    ReDim som(h) As Variant
     
     
    'on obtient le tableau rempli sans valeur nulle
     
     
    'nb grilles : somme / 13 arrondie au dessus (4 grilles max)
    'nb pains de glaces = nb de box
     
    End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    ça ressemble à un devoir ça.
    Fait F1 sur Byte et tu auras ta réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    While Cells(i, 4) <> dat
        i = i + 1
    Wend
    Dangereux ça. Et s'il ne rencontre jamais dat que se passe-t-il ?
    Prévois un cas de sortie supplémentaire de sécurité avec éventuellement le traitement adéquat pour informer.
    eric

  3. #3
    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
    On n'utilise pas le type Byte pour définir une variable qui ne représentera pas un Byte.
    Un Byte n'est pas un "petit entier".
    Avec la taille des mémoire actuelles, vouloir économiser un octet, c'est comme penser que la mer va déborder si on pisse dedans.
    Pour une variable désignant un numéro de ligne, utilise le type Long.

    De plus, tu devrais vérifié sur un cas précis que ce qui résulte de ton Input peut bien être égal à la valeur d'une de tes cellules dates.
    Parce que je vois de nombreuses raisons pour lesquelles cette comparaison pourrait poser problème.
    Et, si c'est le cas, ta boucle While finira forcément par arriver en limite de capacité de la variable compteur.

    Tu devrais gérer le cas de correspondance non trouvée en ajoutant une condition à la boucle qui permette de sortir si la dernière cellule non vide est atteinte.

  4. #4
    Membre habitué
    Femme Profil pro
    responsable r&d innovation food
    Inscrit en
    Mars 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : responsable r&d innovation food

    Informations forums :
    Inscription : Mars 2019
    Messages : 10
    Par défaut
    super merci
    j'ai bien modifié en long, ca marche

Discussions similaires

  1. Réponses: 12
    Dernier message: 17/10/2014, 16h08
  2. Transaction, Dépassement de capacité
    Par SkYsO dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 23/12/2008, 14h56
  3. Dépassement de capacité
    Par jean-pierre96 dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2006, 16h04
  4. Réponses: 8
    Dernier message: 06/02/2006, 14h34
  5. détection de dépassement de capacité
    Par tut dans le forum C++
    Réponses: 10
    Dernier message: 01/12/2004, 22h11

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