Nomenclature intelligente

Résolu/Fermé
Theo_CEREST Messages postés 2 Date d'inscription mardi 17 août 2021 Statut Membre Dernière intervention 18 août 2021 - 17 août 2021 à 17:11
Theo_CEREST Messages postés 2 Date d'inscription mardi 17 août 2021 Statut Membre Dernière intervention 18 août 2021 - 18 août 2021 à 14:30
Bonjour,

J'ai une nomenclature de nombre d'articles variable (lignes) mais un nombre de caractéristiques connues (colonnes).

Je souhaiterais que lorsque j'exécute la macro, que ma macro analyse toutes les cellules de la colonne "C" et que dès lors que le texte "Commerce modifiée" apparaît, qu'elle duplique cette ligne en dessous de la ligne actuelle (ligne analysée).

Ensuite, il faudrait que la même macro fasse du traitement de texte. Je m'explique :
Il y a la ligne d'origine "Commerce modifiée" et la ligne dupliquée qui est pour le moment identique à l'origine. Une de ces lignes doit se voir mettre entre parenthèses, le texte de la colonne "E" et l'autre doit se voir mettre entre parenthèses le texte de la colonne "F".

Je bloque actuellement sur la duplication de la ligne. Mon code ne semble pas prendre en compte les cellules avec le texte "Commerce modifiée".

Je remercierais mille fois une âme charitable qui veuille bien m'aider sur ce projet!!!

Merci d'avance (plus que 999x merci ;) )

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
17 août 2021 à 18:51
bonjour,

d'après ce que j'ai compris, a mettre dans un module:

Option Explicit
Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
    Set FL1 = Worksheets("Feuil1") 'a adapter
    NoCol = 3 'lecture de la colonne C
    For NoLig = Split(FL1.UsedRange.Address, "$")(4) To 1 Step -1 'on boucle en remontant
        Var = FL1.Cells(NoLig, NoCol)
        If Var = "Commerce modifiée" Then 'terme à chercher
        Rows(NoLig & ":" & NoLig).Copy 'copie ligne
        Rows(NoLig & ":" & NoLig).Insert Shift:=xlDown 'insertion ligne
        FL1.Cells(NoLig, NoCol + 2) = "(" & FL1.Cells(NoLig, NoCol + 2) & ")" 'colonne E parenthèse
        FL1.Cells(NoLig + 1, NoCol + 3) = "(" & FL1.Cells(NoLig + 1, NoCol + 3) & ")" 'colonne F parenthèse
        End If
    Next
    Set FL1 = Nothing
End Sub


0
Theo_CEREST Messages postés 2 Date d'inscription mardi 17 août 2021 Statut Membre Dernière intervention 18 août 2021
18 août 2021 à 14:30
Bonjour Le Pivert,

je tiens avant tout à vous remercier d'avoir pris le temps de me répondre.

Votre code fonctionne parfaitement bien! il fait tout ce que je cherchais à faire.
J'admets que seul je n'aurais jamais pu arriver à un tel code, très avancé pour moi qui ne suis pas du métier!

Je vais juste faire une petite recherche encore afin de faire en sorte que le nom de la feuille soit mis à jour de manière automatique, ce qui ne posera pas de soucis! (car le nom de la feuille est egal au nom du fichier, or je le récupère déjà plus haut dans moa macro!)

Merci encore pour votre aide, elle m'a été très précieuse.

Bonne journée,

Théo
0