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 :

{VBA Excel}Amiliorer macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut {VBA Excel}Amiliorer macro
    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
    Sub compter()
    Dim totlig As Long, poid As Double, i As Long
    With Sheets("Saisie") ' Travaille sur la feuille Saisie
        totlig = .Range("Q65536").End(xlUp).Row ' Recupere le nombre de ligne
        poid = 0# ' Initialise le poid calculé
        For i = 5 To totlig ' Demarre la boucle à la igne 5, la 1,2,3,4 sont des titres
            If IsNumeric(Range("Q" & i).Value) Then
                 poid = poid + (.Range("Q" & i).Value / 1000) ' additione la valeur poids ramenée en tonnes
            End If
            If poid >= 3000 Then ' test avec la prochaine valeur si ca depasse les 3000 tonnes
                MsgBox ("Depassement :" & poid & " Kg" & vbCr & "A la ligne " & i)
                .Range("Q" & i).Interior.ColorIndex = 3 ' je colorie en rouge la cellule
                poid = 0# ' remise à zero des calculs
              Else
                .Range("Q" & i).Interior.ColorIndex = xlNone ' sinon j'enleve la couleur
            End If
        Next i
    End With
    End Sub
    Voici ma macro le soucis c'est quand je la lance a l'ouverture du document
    elle compte toutes la colone
    ce que je voudrais faire c'est qu'a l'ouverture c'est que je reprends le comptage a partir du dernier depassement et non tout recommencé

    l'idée c'est de memoriser le dernier depassement et quand je ré-ouvre mon dossier je reprends le comptage a la mémorisation



    Ex

    ligne 358 j'ai fait un depassement
    quand je ré_ouvre mon fichier
    je reprend a compte a partir de la ligne 385




    Voila en gros
    si vous pouviez me donner un coup de main merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faudrait lors de ta derniére opération stocker la valeur dans une feuille, et la récupérer lors de ton prochain lancement.

    J'ai fait un truc dans ce genre, car on me demandait à l'ouverture de récupérer les derniéres paramètres de certaines saisies.

    J'ai donc crée une feuille où je mettais ces données et que ke récupérais quand j'en avais besoin.

    Starec

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    si j'ai bien compris tu me conseillerais de faire une nouvelle feuille que j'appelerais journal de bord?

    j'avais pensé a ca mais tu penses pas que c'est plus complex que de memoriser le dernier evement dans une mémoire et de recupere a l'ouverture de la feuillle


    a noter que le journal de bord me permetrais d'avoir un historique ce qui n'est forcement une si mauvaise idée

    je vais chercher de ce coter la

    merci

  4. #4
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Citation Envoyé par Thomas69
    tu penses pas que c'est plus complex que de memoriser le dernier evement dans une mémoire et de recupere a l'ouverture de la feuillle
    Ouh que non . Le stockage dans une feuille (ou meme une simple cellule a cote de tes poids, pas oblige d'ajouter une feuille si tu veux pas d'historique) est mille fois plus simple que le stockage dans la RAM. Lorsque tu fermes un fichier, toutes les variables qui lui sont associees sont supprimee de la memoire: a vue de nez je pense que ca implique d'avoir un autre module attache a un autre fichier qui lui reste toujours ouvert avec une variable publique qui contient la valeur.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par tonton fred
    Ouh que non . Le stockage dans une feuille (ou meme une simple cellule a cote de tes poids, pas oblige d'ajouter une feuille si tu veux pas d'historique) est mille fois plus simple que le stockage dans la RAM. Lorsque tu fermes un fichier, toutes les variables qui lui sont associees sont supprimee de la memoire: a vue de nez je pense que ca implique d'avoir un autre module attache a un autre fichier qui lui reste toujours ouvert avec une variable publique qui contient la valeur.
    +1

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    oki
    ben je vais cherche de ce cote la

Discussions similaires

  1. [VBA] Excel Récuperer Macro sur fichier corrompu
    Par Phenx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2009, 13h13
  2. {VBA Excel}Amiliorer une Macro
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/06/2007, 11h50
  3. [VBA-Excel]Désactiver macro lors d'un enregistrement
    Par Helios07 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/01/2007, 17h40
  4. VBA Excel- Pb macro unique
    Par martiweb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2006, 10h40
  5. [VBA][Excel]Exécution macro avec fichiers source
    Par ouezon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/12/2005, 00h00

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