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 :

Priorisation des envois magasin : décrémenter un stock sur variante identique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut Priorisation des envois magasin : décrémenter un stock sur variante identique
    Bonjour à tous,

    D'avance à ceux qui me liront, merci si vous pouvez m'apporter un peu d'aide, je suis vraiment plus que débutant en VBA et je souhaite réaliser qquchose de bien trop complexe pour moi je pense …

    Voici mon problème :

    Chaque ligne de mon fichier exprime les informations d'une variante (colonne S) sur un magasin. Ce fichier doit ordonner les réapprovisionnements sur les magasins en fonction des ventes passées. Jusque la, j'ai tout fait en formules, c'est OK.

    Parfois, il arrive que le stock de l'entrepôt, colonne AB (supposé servir tous les magasins) est inférieur à la somme des approvisionnements à envoyer en magasin … il va donc avoir une rupture sur certains magasin .. Et dans ce cas, il faut prioriser les envois vers les magasins prioritaires …

    Les informations ont été filtrées par priorité (colonne R) et par variante (colonne S) : elles sont donc dans le bon ordre pour décrémenter les stocks entrepôts au fur et à mesure et servir les magasins prioritaires.

    J'ai donc essayé quelque chose comme çà :

    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
    Sub NA()
     
    Dim j As Long
     
    j = 18
     
    Do While Cells(j, 19).Value <> ""
        If Cells(j, 28).Value < Cells(j, 68).Value Then
            If Cells(j + 1, 19).Value = Cells(j, 19).Value Then
                  cells(j, 71).value = cells(j, 28).valeur - cells(j, 65)
        Else
            j = j + 1
        End If
    End if
    Loop
    End Sub
    Mais ça ne marche pas du tout et fait planter le fichier … je pense que la logique est de dire : tant que la variante de la ligne du dessous est identique a la ligne courante, décrémente le stocks dispo jusqu'à zéro.

    Quelqu'un aurait il une idée pour m'apporter un peu d'aide sur le sujet ?

    Merci mille fois d'avance et à dispo pour discuter
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub NA()
    Dim R As Range
    Dim L As Long
    Set R = Sheets("DASH").Range("A18").CurrentRegion
    For L = 2 To R.Rows.Count
        If R(L, 28).Value < Cells(L, 68).Value And R(L + 1, 19).Value = R(L, 19).Value Then
            MsgBox "OK"
        Else
            MsgBox "Ko"
        End If
    Next
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut
    Merci beaucoup de ta réponse rdurupt, tu me redonnes de l'espoir ..
    Donc, j'ai bien compris, j'insère mes calculs à la place des messageboxes 'ok' et 'ko'

    J'ai fait cela mais j'ai une erreur de type "13" qui serait un problème de type de données. Je t'envoie çà si tu veux bien :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub NA()
    Dim R As Range
    Dim L As Long
    Set R = Sheets("DASH").Range("A18").CurrentRegion
    For L = 2 To R.Rows.Count
        If R(L, 28).Value < Cells(L, 68).Value And R(L + 1, 19).Value = R(L, 19).Value Then
            Sheets("DASH").Cells(L, 73).Value = Sheets("DASH").Cells(L, 28).Value - Sheets("DASH").Cells(L, 65).Value
        Else
            Sheets("DASH").Cells(L, 73).Value = Sheets("DASH").Cells(L, 65).Value
     
        End If
    Next
    End Sub

    Mille mercis

  4. #4
    Invité
    Invité(e)
    Par défaut
    L correspond a la postion dans le tableau R(l,65) - R(L,?).

    Te tableau R commance toujours a 1!

    Vue que je boucle de 2 a la dernière ligne cell(L,2) correspond a [A2] ça ppeut pas marcher; tu comprends?

  5. #5
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Par défaut
    Oui je pense que j'ai compris la logique,
    je te remercie pour ton aide, je vais creuser davantage et je poste la solution une fois terminé
    Bonne soirée !

Discussions similaires

  1. gestion de données stockées sur des serveurs
    Par amal1410 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 26/03/2013, 21h08
  2. gestion de données stockées sur des serveurs
    Par amal1410 dans le forum Développement
    Réponses: 5
    Dernier message: 25/03/2013, 11h52
  3. Réponses: 1
    Dernier message: 14/01/2013, 15h24
  4. Réponses: 5
    Dernier message: 22/05/2012, 17h02
  5. Réponses: 4
    Dernier message: 03/05/2006, 15h30

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