VBA mise à jour d'une feuille de calcul Excel

Georges_R Messages postés 8 Statut Membre -  
Georges_R Messages postés 8 Statut Membre -
Bonjour,
J'ai créé trois feuilles de calcul dans le classeur Excel.
1° liste (nommée "articles") des articles avec:
-> colonne A: désignation
-> colonne B: quantité initiale
-> colonne C: quantité disponible

2° feuille de saisie des entrées/sorties + calcul du nouveau disponible. Je l'ai nommée "Saisie"
3° journalisation des entrées/sorties (la base de données). je l'ai nommée "Journal"

Pouvez-vous me donner la technique pour mettre à jour la feuille "articles" avec la valeur du nouveau disponible de la feuille "saisie" svp?

Cordialement,
Configuration: Windows XP Internet Explorer 6.0

10 réponses

  1. ponpon
     
    Bonjour,
    Votre lien pointe sur de la pub pour calculette Calcul 3.01 …
    Alors on fait quoi !
    0
  2. Georges_R
     
    Bonjour,

    Cette liaison ne vient pas de mon fait et je ne comprends pas d'où elle vient. Elle n'a donc rien à voir avec mon problème.
    Désolé!.

    Voici ce que j'ai dans mon macro actuellement

    Sub Enregistrer_la_saisie()
    '
    ' Enregistrer_la_saisie Macro
    ' Macro enregistrée le 29/09/2009 par SILCA
    '
    ' Verifier_si_une_cellule_B2_H2_est_vide Macro
    ' Macro enregistrée le 01/10/2009 par Georges
    '
    If Range("B2").Value = "" Then
    MsgBox ("Attention: vous n'avez pas renseigné une cellule vide")
    Exit Sub
    End If
    For Each Cellule In Range("D3:H2")
    If Cellule.Value = 0 Then
    MsgBox ("Attention: vous n'avez pas renseigné une cellule vide")

    Exit Sub

    End If

    Next
    'fin de vérification

    'copie des informations dans le journal BD
    ActiveWindow.ScrollColumn = 1
    Sheets("BD").Select
    Selection.EntireRow.Insert
    Sheets("Saisie").Select
    Range("A2:H2").Select
    Selection.Copy
    Sheets("BD").Select
    Range("A2").Select
    'Selection.EntireRow.Insert
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Sheets("Saisie").Select
    'ActiveWindow.ScrollColumn = 2
    'ActiveWindow.ScrollColumn = 3
    'Range("I8").Select
    'ActiveSheet.Paste
    'Application.CutCopyMode = False
    'Range("I8:P8").Select

    'C'est ici mon blocage pour la mise à jour de la cellule Saisie!colonne C
    'comment mettre à jour la colonne C de l'article que je viens de saisir?
    'Comment ajouter une alerte si colonne C est inférieure à colonne B?

    ' Réinitialisation des rubriques de saisie
    Range("I7").Activate
    Selection.ClearContents
    Range("I12").Select
    Selection.ClearContents
    Range("I11").Select
    ActiveCell.FormulaR1C1 = "=TODAY()"
    Range("I12").Select
    MsgBox ("Validation effectuée !")
    End Sub
    0
    1. ponpon
       
      Bonjour,
      Je suis de retour après une grosse panne.
      Pouvez-vous mettre votre exemple sur https://www.cjoint.com/ et poster le lien.
      Se sera plus simple pour comprendre et adapter votre procédure.
      0
      1. Georges_R Messages postés 8 Statut Membre > ponpon
         
        Bonjour,

        J'ai mis l'exemple sur le site pour vous permettre de voir mon souci. J'ai fait de mon mieux mais je sens qu'il y a des maladresses de débutant.
        Il me reste encore la partie consultation du journal par article ou par bénéficiaire.

        Je vous remercie beaucoup de votre aide.
        Cordialement,
        0
      2. ponpon > Georges_R Messages postés 8 Statut Membre
         
        Bonjour,
        Il manque juste le lien que vous a fourni [cjoint.com] !
        Merci.
        0
  3. ponpon
     
    Bonjour,
    Merci, c'est parfait.
    Ma réponse pour demain, se soir c'est ma fête.
    0
    1. Georges_R
       
      Bonne fête alors!
      Il n'y rien qui presse. Bonne soirée!
      0
  4. ponpon
     
    Bonjour,
    Petite question : dans le tableau de saisie, sur la feuille [Saisie], pourquoi la quantité saisie doit être négative ?
    Est-ce que se tableau sert à entrer le produit acheté et la quantité correspondante ?
    Ou sert aussi comme sortie du stock ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ponpon
     
    Bonjour,
    J’ai un peu d’avance, j’ai adapté votre procédure [Sub Enregistrer_la_saisie()] pour la feuille [Saisie].
    https://www.cjoint.com/?kmw5S6FYun
    J’espère que c’est selon votre demande !
    0
    1. Georges_R
       
      Bonjour,

      C'est très rapide! Je vais le regarder.
      Merci beaucoup!
      0
    2. Georges_R Messages postés 8 Statut Membre
       
      Re-bonjour,

      J'ai lu le code de la saisie et j'ai vu que j'avais des lignes inutiles.
      Il y a un petit souci car chaque nouvelle saisie efface le contenu des anciennes saisies dans le journal "BD".

      J'ai un autre souhait sur "Articles":
      Comment forcer la copie pour que la nouvelle ligne que je viens d'insérer ne soit pas en gras?

      Je vais continuer pour créer un code de suppression dans "articles" de telle sorte que les cellules de la colonne H ne soient pas impactées.

      Merci pour votre aide!
      0
  7. ponpon
     
    Bonjour,
    Merci, je vais regarder ce soir.
    0
  8. ponpon
     
    Bonjour,
    Voir la feuille [Saisie] … https://www.cjoint.com/?knvFltiHb0
    Note ; que comprendre par : ….. que les cellules de la colonne H ne soient pas impactées
    0
    1. Georges_R
       
      Bonjour,

      Lorsque je supprime manuellement une ligne d'article, (exemple la linge N°9), ce sont toutes les colonnes de cette ligne qui disparaissent. Du coup, le macro qui utilise les valeurs saisies dans la colonne H ne peuvent plus travailler.

      Du coup, j'ai imaginé une fonction de suppression d'un article comme suit:

      Sub Supprimer_article()
      '
      ' Supprimer_article Macro
      ' Macro enregistrée le 13/10/2009 par Georges_R
      '
      nomart = Range("H25").Value
      numligne = WorksheetFunction.Match(nomart, Sheets("Articles").Range("A:A"), 0)
      MsgBox ("l article " & nomart & " se trouve en ligne " & numligne)

      ' Supprimer cette ligne

      range("A" & numligne:"C" & numligne).Activate
      'supprimer JUSTE les cellules ("A" & numligne ---> "C" & numligne)
      Selection.Delete Shift:=xlUp
      '
      End Sub

      Ce n'est pas une bonne synthaxe pour VBA ...

      Question subsidiaire: Quelle est la différence entre .Range et Range ?

      Cordialement,
      0
    2. Georges_R
       
      Bonjour,

      Je suis ravi du résultat dans la feuille "saisie" et (en plus )j'ai compris le contenu du code.
      Merci!
      0
  9. ponpon
     
    Bonjour,
    Eh bien oui, si vous supprimer une ligne vous touchez aussi votre tableau de saisie.
    Je vous fais une proposition en fin de journée.
    0
  10. ponpon
     
    Bonjour,
    Ci joint ma proposition, https://www.cjoint.com/?kovCV8yPAo
    J'ai utilisé votre travail en le remodelant pour réaliser une page d'accueil ou vous avez l'ensemble des tableaux d’ajout, saisie et suppression.
    0
  11. Georges_R Messages postés 8 Statut Membre
     
    Bonjour,

    C'est vraiment génial! Je n'aurai pas trouvée meilleure idée.
    Merci beaucoup!

    Je vais tenter de faire fonctionner la consultation en m'inspirant de la fonction de suppression.

    Merci!
    0