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 :

Code VBA - Gestion de Stocks [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Octobre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Octobre 2014
    Messages : 17
    Points : 4
    Points
    4
    Par défaut Code VBA - Gestion de Stocks
    Bonjour à tous,

    Je souhiaterais copier automatiquemt les données de la feuille Base vers la feuille MIF et donc dés que lôn modifie la feuille Base cela doit modifier la feuille MIF.


    J'ai donc créé une Macro Copie que j'ai inséré dans le code de la feuille MIF
    Cependant j'obtiens un Error 9 Out of Range quand j'essaie de le faire

    Voici ce que 'ai inscris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Copie()
    Dim lastrow As Long
    Sheets("Base").Cells.Copy Sheets("MIF").Cells
     
    End Sub
    Dans le code de la feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
    Copie
    End Sub
    J'obtiens cette erreur au niveau de la ligne sheets copy... sur la Macro.

    Auriez-vous une idée ?

    Merci de votre aide.

    PS: j'ai déjà été consulter à quoi correspondait ce code erreur cependant les objets dont je parle existe bel et bien.

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Polysandre, bonjour le forum,

    Je trouve un peu lourd ce copier/coller sur la macro événementielle Change... Mais essaie comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Copie()
    Dim lastrow As Long 'cette variable ne sert à rien
     
    Sheets("Base").Cells.Copy Sheets("MIF").Range("A1")
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Octobre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Octobre 2014
    Messages : 17
    Points : 4
    Points
    4
    Par défaut
    Bonjour à tous,

    Je pose la question dans la m'eme discussion.

    En fait je suis en train de faire un excel de Gestion des stocks.

    J'ai donc ma feuille Documents, qui contient tous les documents et devra contenir la quantité dont je dispose etc...

    J'ai donc fait un code me permerttant avec un USERFORM de gérer les entrées, sorties, destructions.

    Voici le code en question :


    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
     
    Dim ligne
     
    Private Sub AjoutCommande_Initialize()
    Me.Choixdoc.RowSource = "Documents!N2:N" & Sheets("Documents").[n65000].End(xlUp).Row
    End Sub
     
    Private Sub Choixdoc_Change()
      ligne = Me.Choixdoc.ListIndex + 2
       Me.Nomdoc = Sheets("Documents").Cells(ligne, 13)
         Me.datemaj = Sheets("Documents").Cells(ligne, 18)
          Me.Quantitédispo = Sheets("Documents").Cells(ligne, 16)
          Me.Langue = Sheets("Documents").Cells(ligne, 1)
     
    End Sub
    Private Sub bValider3_Click()
     
    '--- Positionnement dans la base des destruction
       ligne = Sheets("Destructions").[a65000].End(xlUp).Row + 1
       '--- Transfert Formulaire dans la base des destructions
       Sheets("Documents").Cells(ligne, 3) = Me.Choixdoc
       Sheets("Documents").Cells(ligne, 1) = Me.Langue
       Sheets("Documents").Cells(ligne, 2) = Me.Nomdoc
           Sheets("Documents").Cells(ligne, 4) = Me.Quantité
            Sheets("Documents").Cells(ligne, 5) = Me.Emplacement
       Sheets("MDocuments").Cells(ligne, 6) = Date 'date du jour
     
     
     
      '--- Transfert Formulaire dans la liste des documents
        Sheets("Documents").Cells(ligne, 13) = Me.Nomdoc
       Sheets("Documents").Cells(ligne, 20) = Me.Quantitéjetée
       Sheets("Documents").Cells(ligne, 19).FormulaR1C1 = "=SUM(RC[-4])-RC[-1]"
       xQ = Sheets("Documents").Cells(ligne, 19).Value
       Sheets("Documents").Cells(ligne, 16) = xQ
       Me.Quantitédispo = Sheets("Documents").Cells(ligne, 4)
       Me.datemaj = Date
       Me.Quantitéjetée = ""
       Sheets("Documents").Cells(ligne, 19).ClearContents
       Sheets("Documents").Cells(ligne, 20).ClearContents
     
     
     
     
      End Sub
    Private Sub bQuitter3_Click()
      Unload Me
      Sheets("accueil").Select
    End Sub


    Cependant, lorsque je testem dans le menu déroulant de la référence, je n'ai aucune référence qui apparaît.
    Tout en sachant que le fait de sélectionner une référence doit m'afficher les infos, langue, nom du document, emplacement, quantité, date de deernière maj... etc

    Voici les codes de mes Macro Tri et Initialise :

    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
     
     
    Sub Tri()
    '
    Sheets("Documents").Range("A1").Select
     
        Range([A2], [F65536].End(xlUp)).Select
           Selection.Sort Key1:=Range("A2"), Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        ActiveWindow.ScrollRow = 6
        Range("A1").Select
    End Sub
    Sub initialise()
    Sheets("Documents").Select
     
        Dim Derlig As Long
        Derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
        Range("a2:a" & Derlig).Name = 
        Range("b2:b" & Derlig).Name = 
         Range("c2:c" & Derlig).Name = 
        Range("d2:d" & Derlig).Name = 
        Range("e2:e" & Derlig).Name =     
    Range("f2:f" & Derlig).Name = 
        Range("g2:g" & Derlig).Name = 
        Range("h2:h" & Derlig).Name = 
        Range("i2:i" & Derlig).Name = 
        Range("j2:j" & Derlig).Name = 
        Range("k2:k" & Derlig).Name = 
        Range("l2:l" & Derlig).Name = 
        Range("m2:n" & Derlig).Name =
       Range("k2:k" & Derlig).Name = 
        Range("l2:l" & Derlig).Name = 
        Range("m2:n" & Derlig).Name = 
     
          Call Tri
       Call initialise
    End Sub
    Merci.

  4. #4
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour le fil, bonjour le forum,

    je sais que ce forum ne préconise pas les pièces jointes mais, pour ma part, je préfère constater les faits avec une pièce jointe que repasser le code ligne par ligne... Pas sûr aussi, Polysandre, que ce soit une bonne idée d'avoir posté sur le même fil...
    À plus,

    Thauthème

    Je suis Charlie

  5. #5
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Octobre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Octobre 2014
    Messages : 17
    Points : 4
    Points
    4
    Par défaut
    Bonjour

    Tu veux dire, avec Mon Excel source ?

    Tu penses que je devrais ouvrir un autre fil?

    Je suis désolée, je débute en VBa donc j'ai pas mal de questions.

  6. #6
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut

    Dans le second code :

    • Lignes n°9 & 10 : il y en a une en trop …

    • A quoi sert la ligne n°35 ? Vérifier dans quelle procédure elle est située …
    Et les noms définis sur les plages servent-ils à quelque chose ? Pas de trace ailleurs dans les codes …


    Dans le premier code :

    • J'inverserais les lignes n°47 & 48 …

    • Ligne n°19 : mettre la cellule de départ en dur n'est pas conseillé (voir avec Rows.Count) surtout à partir d'Excel 2007.
    Du reste là aussi conformément aux règles du forum la version aurait dû être mentionnée dans le titre de cette discussion …


    Merci d'indiquer quelle est la partie du code en relation avec la problématique rencontrée …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Octobre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Octobre 2014
    Messages : 17
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci de ta réponse.

    Je travaille sur EXCEL 2010.

    Je vais regarder tes commentaires et essayer de etravailler à partir de là.

    Polysandre.

  8. #8
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Octobre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Octobre 2014
    Messages : 17
    Points : 4
    Points
    4
    Par défaut Alimenter une Combo Box
    Bonjour à tous, j'ai retravaillà le code pour alimenter la combo box

    Cependant cette dernière reste vide.

    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
     
     
    Private Sub Ajoutcommande_Initialize() ' A l'ouverture de l'USF
    Dim rngRef As Range
    Dim ws As Worksheet
     
    Set ws = Worksheets("Documents")
     
    'On crée une boucle qui alimente la liste de la ComboBox "ChoixDoc"
    For Each rngRef In ws.Range("Ref_liste")
    Me.Choixdoc.AddItem rngRef.Value
     
    Next rngRef
     
    End Sub
    Vous auriez une suggestion ?

    Merci de votre aide.

    Polysandre

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Ne jamais écrire l'entête d'une procédure événementielle, mais la choisir par les listes déroulantes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Ajoutcommande_Initialize()
    Cette procédure est invariable quel que soit le nom de l'Userform.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Userform_Initialize()
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  10. #10
    Candidat au Club
    Femme Profil pro
    Marketing
    Inscrit en
    Octobre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Marketing

    Informations forums :
    Inscription : Octobre 2014
    Messages : 17
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci pour votre aide, en effet j'avais finalement réussi par comprendre que mon erreur venait de là.

    Polyasandre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Votre avis sur fichier Excel-Vba gestion des stocks
    Par mira3 dans le forum Conception
    Réponses: 5
    Dernier message: 10/04/2012, 11h01
  2. [Toutes versions] Optimiser le code VBA (gestion de liste)
    Par BAHIRI dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/03/2011, 02h10
  3. Inserer du Code VBA dans une prodedure stockée
    Par Soulkeum dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/09/2007, 13h23
  4. Réponses: 52
    Dernier message: 23/05/2006, 12h08
  5. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 20h55

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