Alimentation tableau et modification TCD

  • Initiateur de la discussion Initiateur de la discussion makss39
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

makss39

XLDnaute Nouveau
Bonjour!

Je viens vers vous car je ne suis pas très doué en VB et donc je ne sait pas comment m'y prendre.

Voila, je vous expose mon souci :

J'ai un fichier excel qui gère des dépôts de pains, et qui génére des BL pour les clients. De plus une synthèse est faite dans un TCD sur une feuille portant le nom du mois et l'année.

Fonctionnement :
Une feuille pour la base client.
Une feuille pour la saisie des livraisons.
Une feuille BL. (Selection du client via liste en dessous de "Livré à", puis génération d'un BL via le bouton "Enregistrer", et alimentation du TCD)


Le soucis c'est que l'on ne peut gérer les retours de marchandise, j'ai donc créé une feuille "RETOUR", dans laquelle je voudrais pouvoir rentrer les retours de marchandise du client, et que cette quantité soit mise à jour dans la synthèse.

Je suis sous Word 2007 en mode de compatibilité...

Merci d'avance du coup de main pour la macro, je précise que ce n'est pas moi qui ai réalisé la macro "Enregistrer".

Le fichier en PJ.


Max
 

Pièces jointes

Dernière édition:
Re : Alimentation tableau et modification TCD

Bonjour,

Personne ne peut me donner un coup de main?
Je ne suis pas clair dans mes explications ou autre chose ???

Je vais essayé d'être un peu plus précis et d'y aller pas par pas :

Le remplissage de mon tableau à l'appuie sur le bouton "Retour" est OK.

Mais c'est ici que ça pose problème :

Je désirerai comparer les cellules B4 à E4 de la feuille RETOUR après l'appuie sur le bouton, avec celles présentes dans la feuille de synthèse (colonnes A à D).
SI il y a correspondance (une seule ligne possible), alors j'aimerais modifier la quantité puis le prix total de cette ligne et enfin rafraichir le TCD.

Je vous joint juste une version simplifiée pour modification du tableau.

Cdlt,

Makss
 

Pièces jointes

Dernière édition:
Re : Alimentation tableau et modification TCD

Bonjour

Il serait plus simple à mon avis d'ajouter les lignes retours aux lignes de livraison : prévoir une valeur en négatif ou bien deux colonnes supplémentaires pour la type du mouvement (livraison ou retour) et la quantité signée (+ ou -) : ainsi le TCD reste actualisable et affichera bien le solde livraisons - retours
 
Re : Alimentation tableau et modification TCD

Bonjour Chris !

Et oui, du coup, sans réponses, je suis parti la dessus, avec un ajout des lignes au bilan du mois, en négatif biensur...
Par contre, comme les feuilles de bilan sont générés automatiquement (une par mois), je ne voit pas comment faire un test pour savoir a quelle feuille ajouter la ligne.

Par exemple, si la date entrée est le 10/03/2009, mettre a jour la feuille "mars_2009", si la date entrée est le 15/04/2009, mettre a jour la feuille "avril_2009"...

Voici mon code actuel :
Code:
 Range("A6:F6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Cells(Range("A65536").End(xlUp).Row + 1, 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.Copy
       
    Sheets("avril_2009").Select
    ActiveSheet.Unprotect
    Cells(Range("A65536").End(xlUp).Row + 1, 1).Select
    'Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        'xlNone, SkipBlanks:=False, Transpose:=False
    ActiveSheet.Unprotect
    ActiveSheet.Paste
    ActiveSheet.PivotTables("avril_2009").PivotSelect "Client[All]", xlLabelOnly + _
        xlFirstRow, True
    Application.CutCopyMode = False
    ActiveSheet.PivotTables("avril_2009").PivotCache.Refresh
    
    Columns("A:F").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    Range("G1").Select
    ActiveSheet.Protect
    
    Sheets("RETOUR").Select
    Range("A15:F800").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    Range("A11").Select

End Sub

A noter une erreur une fois sur 2 dans la deuxième copie...

Merci!!!

Makss
 
Re : Alimentation tableau et modification TCD

Bonjour

Avec la date en C4 et sous réserve de respecter les noms de mois
CStr(Format(Range("C4").Value, "mmmm_yyyy")) donne le nom de la feuille correspondant à la date.

Eviter les fusions de cellule : agrandir la hauteur de la ligne de saisie des retours serait préférable à une fusion de 3 lignes
 
Re : Alimentation tableau et modification TCD

Bonjour !!!

J'ai supprimer la fusion de ligne dans ma version actuelle, et ai rendu le code un peu plus propre...
Je le poste pour les intéressés!

Code:
Dim DatRet As String, Mois As String, Année As String  'déclaration des variables
    
    DatRet = Format(Sheets("BL").Range("E4"), "dd-mm-yyyy") 'initialisation
    Mois = Format(Sheets("BL").Range("E4"), "mmmm")
    Année = Format(Sheets("BL").Range("E4"), "yyyy")


    Range("A6:F6").Copy
    Cells(Range("A65536").End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
       
    
    
    Sheets(Mois & "_" & Année).Select
    
    Cells(Range("A65536").End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
        

          
    ActiveSheet.PivotTables(Mois & "_" & Année).PivotSelect "Client[All]", xlLabelOnly + _
        xlFirstRow, True
    Application.CutCopyMode = False
    ActiveSheet.PivotTables(Mois & "_" & Année).PivotCache.Refresh
    
    'Sheets(Mois & "_" & Année).Protect


    
    Columns("A:F").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    Range("G1").Select

    'ActiveSheet.Protect
    
    Sheets("RETOUR").Select
    Range("A15:F800").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    Range("A11").Select

End Sub

Je suis obligé de supprimer la protection de la feuille (commentée ici) sinon j'ai une superbe "Erreur 1004" que je n'arrive pas à solutionner.

Makss
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
852
Retour