Créer automatiquement une liste à partir de tableaux [Résolu]

Signaler
Messages postés
239
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2021
-
Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021
-
Bonjour,

Pour un projet j'aimerais automatiser une création de réferences.
L'idée est qu'en appuyant sur un seul bouton, cela active une macro qui me créait toutes les références possibles.

Comme vous pouvez le voir sur la photo, j'ai plusieurs tableaux (qui évolueront surement au fur et à mesure du temps).



La photo suivante montre la construction d'une réference :



La réference sera au final de ce type là : SQA804V-2U3O3O1O/DO

Cela signifie que chaque tableau intervient une fois, sauf le tableau "Plaque" qui peut intervenir 1 à 4 fois en fonction du nombre de postes (tableau "Poste").

J'aurais d'abord voulu savoir si c'était quelque chose de réalisable, et auquel cas si vous pouviez me donner des pistes pour pouvoir m'en sortir.

N'hesitez pas à me demander plus d'informations si ce n'est pas assez clair.

Merci d'avance et bonne fin de semaine !

Bien à vous

1 réponse

Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021
880
bonjour,
souhaites-tu obtenir un long tableau, similaire à celui de la deuxième image, avec toutes les combinaisons possibles?
maitrises-tu le VBA? cherches-tu à l'apprendre?
commence peut-être à faire cela à partir des tableaux gamme et vis, cela t'aidera à faire cela progressivement.
Messages postés
239
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2021
7 >
Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021

Voici mon code :

Sub CREER()
'
' CREER Macro
'

'



Dim rg As Range, ref As String, cible As Range
Dim rk As Range
Dim ro As Range
Dim rs As Range
Dim rc As Range


Set cible = Sheets("Création automatique de réferen").[A2]

Set rg = Sheets("Plaque").[G3]
Do While rg <> ""

Set rk = Sheets("Plaque").[K3]
Do While rk <> ""

Set ro = Sheets("Plaque").[O3]
Do While ro <> ""

Set rs = Sheets("Plaque").[S3]
Do While rs <> ""

Set rc = Sheets("Plaque").[C3]
Do While rc <> ""

ref = rg & rk & ro & rs & rc
cible = ref

Set cible = cible.Offset(1)

Set rc = rc.Offset(1)
Loop

Set rs = rs.Offset(1)
Loop

Set ro = ro.Offset(1)
Loop

Set rk = rk.Offset(1)
Loop

Set rg = rg.Offset(1)
Loop




End Sub


Cela fonctionne merci beaucoup !

Je vais le continuer.

Par contre pas reussi à mettre l'Option Explicit, comme expliqué dans mon dernier message ..
Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021
880 >
Messages postés
239
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2021

option explicit doit se trouver tout en haut de la page de code.
Messages postés
239
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2021
7 >
Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021

Même en le mettant au début cela me pose problème ..

Voilà le code :

Sub CREER()


'
' CREER Macro
'

'

Option Explicit


Dim rg As Range, ref As String, cible As Range
Dim rk As Range
Dim ro As Range
Dim rs As Range
Dim rc As Range
Dim rw As Range


Set cible = Sheets("Création automatique de réferen").[A2]

Set rg = Sheets("Plaque").[G3]
Do While rg <> ""
    
    Set rk = Sheets("Plaque").[K3]
    Do While rk <> ""
    
        Set ro = Sheets("Plaque").[O3]
        Do While ro <> ""
        
            Set rs = Sheets("Plaque").[S3]
            Do While rs <> ""
    
                Set rc = Sheets("Plaque").[C3]
                Do While Left(rc, 1) = "1"
    
                    Set rw = Sheets("Plaque").[W3]
                    Do While rw <> ""
    
                        ref = rg & rk & ro & rs & "-" & rc & "/" & rw
                        cible = ref
                    
                        Set cible = cible.Offset(1)
                
                    Set rw = rw.Offset(1)
                    Loop
                
                Set rc = rc.Offset(1)
                Loop
                
            Set rs = rs.Offset(1)
            Loop
            
        Set ro = ro.Offset(1)
        Loop
        
    Set rk = rk.Offset(1)
    Loop
    
Set rg = rg.Offset(1)
Loop

    


End Sub


J'ai essayé d'ameliorer la version de vendredi, mais il semble que la partie :
                Set rc = Sheets("Plaque").[C3]
                Do While Left(rc, 1) = "1"


ne fonctionne pas. Sauriez-vous m'indiquer pourquoi ?

Merci encore pour votre aide !
Messages postés
239
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2021
7 >
Messages postés
239
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2021

Erreur bête de ma part pour la deuxième partie de mon message ..

Par contre toujours bloqué par l'Option Explicit ..
Messages postés
16443
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 juillet 2021
880 >
Messages postés
239
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
18 juillet 2021

option explicit doit être en haut du module, en haut de la page, en haut du texte, avant toutes les autres instructions, donc hors de la sub.