XL 2016 Gestion Doublons, Tri, Concatenation, verouillage/masquage de formules avec VBA

Jovial87

XLDnaute Nouveau
Bonjour chers tous,

Je souhaite simplifier une tache manuelle récurrente sur le tableau du fichier joint ci-dessous (feuille ‘’Feuille de Calculs’’). Pour calculer ma commande, je dois récupérer les codes de la colonne ‘’K’’, feuille ‘’Stock Sortant (IR Ouvertes)’’ puis les coller sur la feuille ‘’Feuille de Calculs’’, à partir de la cellule B12. Ensuite, faire la même opération, mais avec les feuilles ‘’Stock Sortant (IR Ouvertes)’’ ó ‘’Mweso_LSL’’. Aussi, concaténer en ‘’Feuille de Calculs’’, en colonne H, les Références IR par « Code Produit » de la feuille ‘’Stock Sortant (IR Ouvertes)’’, colonne « A » ; ensuite faire la même opération en colonne « I » pour la colonne « M », feuille ‘’Stock Sortant (IR Ouvertes)’’ en y ajoutant les quantités, colonne « S » pour chaque ligne.

Ce qui m’est trop difficile, sinon impossible est de :
  • Supprimer les doublons de la colonne B (à partir de la ligne 12, ‘’Feuille de Calculs’’), sans toucher la structure du tableau (nombre de lignes, la mise en forme, les formules, ...). Les lignes vides devraient rester en bas de données ;
  • Trier par ordre croissant (A - Z) la colonne B (à partir de la ligne 12) avant d’appliquer la renumérotation de lignes de 1 à 1000 ;
  • Pour la concaténation, sauter les lignes de produit avec ‘’Réf. BdC’’ : c’est-à-dire seules les lignes avec des traits « - » de la feuille ‘’Stock Sortant (IR Ouvertes)’’, colonne « E » devraient être prises en compte dans la feuille ‘’Feuille de Calculs’’, colonne « H » et « I »
  • Verrouiller à l’aide d’une macro, les cellules contenant les formules (les masquer aussi) notamment (Comment faire ?).
Mes tentatives de macros (présentes avec le fichier) :
  • ‘’Calcul_ET_Tri_Articles’’ manque la partie « Suppression de doublons et tri sans déranger la structure du tableau ;
  • ‘’FindMy_IR’’ et ‘’FindMyComment’’ n’excluent pas les lignes avec des ‘’Réf. BdC’’ de la feuille ‘’Stock Sortant (IR Ouvertes)’’!
Face à cet échec, je recours à la bonne volonté et bienveillance de membres du forum.

Merci d’avance à toute personne de bonne volonté !
 

Pièces jointes

  • Projet En_cours.xlsm
    916 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jovial,
Un essai pour les premiers points en PJ avec suppression des doublons, tri alpha, renumérotation colonne A :
Code:
Sub DédoublonneTriAlpha()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
' Supprime les doublons
    Range("B11:B1011").Select
    ActiveSheet.Range("$B$11:$B$1011").RemoveDuplicates Columns:=1, Header:=xlYes
' Tri par ordre alpha
    ActiveWorkbook.Worksheets("Feuille de Calculs").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuille de Calculs").Sort.SortFields.Add Key:= _
        Range("B12:B1011"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuille de Calculs").Sort
        .SetRange Range("B11:B1011")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
' Renumérote colonne A
    Range("A12") = 1
    Range("A13:A1011").FormulaR1C1 = "=R[-1]C+1"
    Range("A13:A1011") = Range("A13:A1011").Value
' Remet encadrement colonne B
    Range("B13:B1011").Borders.Weight = xlThin
' Remet le calcul en automatique
    Application.Calculation = xlCalculationAutomatic
End Sub
J'ai passé le fichier en xlsb pour qu'il reste sous la barre fatidique de 1Mo. Utilisez le comme ça ou ré enregistrez le en xlsm.
A noter qu'en colonne F les données sont en dur mais non traitées, heureusement c'est toujours PCE, sinon il y aurait souci.

Pour la concaténation, rien compris. Désolé.

Verrouiller à l’aide d’une macro, les cellules contenant les formules (les masquer aussi)
Toutes vos cellules contiennent des formules. On masque tout ? 😅
 

Pièces jointes

  • Projet En_cours.xlsb
    663.8 KB · Affichages: 8

Jovial87

XLDnaute Nouveau
Bonjour Jovial,
Un essai pour les premiers points en PJ avec suppression des doublons, tri alpha, renumérotation colonne A :
Code:
Sub DédoublonneTriAlpha()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
' Supprime les doublons
    Range("B11:B1011").Select
    ActiveSheet.Range("$B$11:$B$1011").RemoveDuplicates Columns:=1, Header:=xlYes
' Tri par ordre alpha
    ActiveWorkbook.Worksheets("Feuille de Calculs").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuille de Calculs").Sort.SortFields.Add Key:= _
        Range("B12:B1011"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuille de Calculs").Sort
        .SetRange Range("B11:B1011")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
' Renumérote colonne A
    Range("A12") = 1
    Range("A13:A1011").FormulaR1C1 = "=R[-1]C+1"
    Range("A13:A1011") = Range("A13:A1011").Value
' Remet encadrement colonne B
    Range("B13:B1011").Borders.Weight = xlThin
' Remet le calcul en automatique
    Application.Calculation = xlCalculationAutomatic
End Sub
J'ai passé le fichier en xlsb pour qu'il reste sous la barre fatidique de 1Mo. Utilisez le comme ça ou ré enregistrez le en xlsm.
A noter qu'en colonne F les données sont en dur mais non traitées, heureusement c'est toujours PCE, sinon il y aurait souci.

Pour la concaténation, rien compris. Désolé.


Toutes vos cellules contiennent des formules. On masque tout ? 😅
Bonjour silvanu,

Merci pour la réponse et ç'est certainement très utile pour mon projet.

- Pour ce qui est de "concaténation", comme vous pouvez le remarquer en colonne H et I de la feuille ‘’Feuille de Calculs’’, la formule (personnalisée) va chercher les informations liées au code produit et les concatener dans la cellule H ou I (selon qu'il s'agisse de ref. IR ou de commentaires). Le souci avec la macro est que ça recupère les infos de la colonne E ou M de la feuille ''Stock Sortant (IR Ouvertes)'' qui ont déjà de réference de BdC (ce que je cherche à éviter.)
- Pour les cellules avec formules, je cherche uniquement à verrouiller et masquer les contenus via les macro (sans passer par la procédure traditionnelle )

Grand merci vraiment.
 

Discussions similaires

Statistiques des forums

Discussions
315 057
Messages
2 115 806
Membres
112 554
dernier inscrit
JULIEN.DECHIPRE