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é !
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.
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 ?
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 )