Création d'une liste specifique a partir d'un groupe

eric57

XLDnaute Occasionnel
Bonjour le Forum

Je reviens vers vous pour vous soumettre un problème pour lequel je n'ai pas trouvé de solution.

Au départ, j'ai une liste d'appareils électroménager, dont pour certains, je ne connais pas la marque mais uniquement le fabricant (groupe)

Je voudrais donc compléter ma liste en implémentant autant de fois la référence de l'appreil pour lequel je n'ai pas la marque , par le nombre de marques existants dans son groupe.

Heuuu je vois qu'il y en a qui ne suivent plus

Je vous met un petit fichier excel, les couleurs ne sont là que pour mieux visualiser les listes a ajouter dans l'exemple.

En page 2, la liste des groupes .

Alors là bien sur ma liste est petite pour l’exemple, dans la réalité j’atteins des listes de plusieurs centaines d'appareils.

Merci d'avance pour l'aide que vous pourrez m'apporter

Eric57
 

Pièces jointes

  • eric57-liste.xlsx
    11.8 KB · Affichages: 31

gilbert_RGI

XLDnaute Barbatruc
Re : Création d'une liste specifique a partir d'un groupe

Bonjour,

peut-être comme ceci

à mettre dans le module de feuille
VB:
 Private Sub Worksheet_Activate()
    For i = 5 To Range("c" & Rows.Count).End(xlUp).Row
        If Cells(i, 3).Value = "" Then Cells(i, 3).Value = Application.Proper(Cells(i, 2).Value)
    Next
End Sub
 
Dernière édition:

eric57

XLDnaute Occasionnel
Re : Création d'une liste specifique a partir d'un groupe

Bonjour gilbert_RGI

Merci pour ta réponse, mais si j'ai bien compris celle-ci reprend le contenu de la colonne B pour le mettre dans C si elle-ci est vide.

Moi je dois en plus ajouter la marque pour chaque marque du groupe ( selon la liste présente dans la feuille "GROUPE" )

c'est pourquoi, de 26 lignes, mon tableau passe a 37 dans l'exemple
 

eric57

XLDnaute Occasionnel
Re : Création d'une liste specifique a partir d'un groupe

Bonsoir

Ouiii merci pou ce code, il fonctionne très bien.

JE peux ajouter assez facilement des groupes supplémentaires et c'est très rapide.

Merci bcp
 

gilbert_RGI

XLDnaute Barbatruc
Re : Création d'une liste specifique a partir d'un groupe

une autre possibilité plus facile à la modification des groupes ;-)))

VB:
Sub test()
    For i = 5 To Range("c" & Rows.Count).End(xlUp).Row
        If Cells(i, 3).Value = "" Then
            Cells(i, 3).Value = Application.Proper(Cells(i, 2).Value)
            Select Case Cells(i, 3).Value
                Case "Brandt"
                    derlG1 = Sheets("GROUPE").Range("B" & Rows.Count).End(xlUp).Row
                    x = derlG1: y = 2
                Case "Electrolux"
                    derlG2 = Sheets("GROUPE").Range("C" & Rows.Count).End(xlUp).Row
                    x = derlG2: y = 3
                    'pour ajouter des groupes mettre plus de case
            End Select
            For nl = 3 To x
                derl = Range("B" & Rows.Count).End(xlUp).Row + 1
                Cells(derl, 2).Value = Cells(i, 2).Value
                Cells(derl, 3).Value = Sheets("GROUPE").Cells(nl, y).Value
                Cells(derl, 4).Value = Cells(i, 4).Value
                Cells(derl, 5).Value = Cells(i, 5).Value
            Next


        End If
    Next
End Sub
 

eric57

XLDnaute Occasionnel
Re : Création d'une liste specifique a partir d'un groupe

Bonjour

Merci pour cette amélioration, de plus le 1er code plantait lorsque mes tableaux dépassaient les 900 lignes.

L'ajout est effectivement plus facile :)

Encore Merci

Eric
 

gilbert_RGI

XLDnaute Barbatruc
Re : Création d'une liste specifique a partir d'un groupe

le 1er code plantait lorsque mes tableaux dépassaient les 900 lignes.

humm ... je n'en vois pas la cause

attention aux espaces insécables par exemple pour "Brandt" est différents de "Brandt " :cool:
 

eric57

XLDnaute Occasionnel
Re : Création d'une liste specifique a partir d'un groupe

Oui j'ai vu que j'avais ce souci d'espace , aussi j'ai ajouté au départ de la macro un bout de code :

'On supprime les espaces

Sheets(1).Range("a:b").Replace What:=" ", Replacement:="", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

j'avais un message " capacité dépassé"
 

eric57

XLDnaute Occasionnel
Re : Création d'une liste specifique a partir d'un groupe

Bonjour Gilbert

Voila je viens faire un point sur ton code.

Il marche très bien, le problème de "dépassement de capacité" venait d'une cellule qui avait un format date au lieu de standard.

Je viens de passer un fichier avec 50.000 lignes c'est long :) mais ça fonctionne

Encore merci

Eric
 

gilbert_RGI

XLDnaute Barbatruc
Re : Création d'une liste specifique a partir d'un groupe

ok à ton service

on peut gagner un peu de temps avec

à placer en début de macro
Code:
Application.ScreenUpdating = False

et en fin de macro
Code:
Application.ScreenUpdating = True
 
Dernière édition:

eric57

XLDnaute Occasionnel
Re : Création d'une liste specifique a partir d'un groupe

ok je testerais cela demain ,

Juste un souci, si au départ, sur la dernière ligne, la cellule "C" est vide, la macro ne remplit que la 1ére cellule vide trouvée et ajoute les lignes en dessous puis s’arrête .

Une fois qu'on le sait, ce n'est pas gênant.
 

eric57

XLDnaute Occasionnel
Re : Création d'une liste specifique a partir d'un groupe

Bonjour

JE reviens sur mon dernier message,

Je te confirme que si la dernière ligne, la cellule "C" est vide, l'ajout des groupes ne se fait pas .

Je pensais que c'était pas génant, mais en utilisation trop rapide, on ne voit pas forcement que la ou les dernières cellules n'ont pas de marques en cellules "C" et du coup la duplication ne se fait pas .

Si tu as une idée ? je suis preneur

MErci

Eric
 

gilbert_RGI

XLDnaute Barbatruc
Re : Création d'une liste specifique a partir d'un groupe

Bonjour,

de retour :))

alors changer de colonne pour le comptage

au lieu de For i = 5 To Range("c" & Rows.Count).End(xlUp).Row

mettre For i = 5 To Range("b" & Rows.Count).End(xlUp).Row

si celle-ci est toujours remplie dans le tableau

salutations

Gilbert
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16