Remplir une feuille en fonction de valeurs de cellules

Bonjour,

Je n'ai pas trouvé mon bonheur sur le net alors, me voilà.

J'ai fait des test avec indirect et Loop (désolé je n'ai pas les codes ni les fichiers ils sont au boulot)

Je souhaite renseigner automatiquement des lignes dans une feuille en fonction de quantité d'une autre feuille.

Je m'explique, j'ai:

Feuille 1

1- 5 Table (avec 5 en A et Table en B)

2- 3 Chaise

3- Etc...

pour avoir:

Feuille 2

1- Table

2- Table

3- Table

4- Table

5- Table

6- Chaise

7- Chaise

8- Chaise

9- Etc...

Merci par avance

Bonjour,

Essaie cette macro :

Sub Test()
Dim WsS As Worksheet, WsC As Worksheet
Dim Cel As Range, Cible As Range
    Set WsS = Worksheets("Feuil1")
    Set WsC = Worksheets("Feuil2")
    For Each Cel In WsS.Range("A2", WsS.Range("A" & Rows.Count).End(xlUp))
        Set Cible = WsC.Range("A" & Rows.Count).End(xlUp)(2)
        Cel.Offset(, 1).Copy Cible
        Cible.AutoFill Cible.Resize(Cel.Value)
    Next Cel
End Sub

A+

Super, un premier grand pas! Grand merci!!

ça fonctionne la feuille 2 est bien rempli par contre j'ai un message d'erreur.

du coup je ne voyais pas faire ça en macro j'ai encore beaucoup de mal avec les macros et je ne vois pas comment prendre en compte une modif sur les quantité de la feuille 1.

L'erreur vient du fait que tu utilises un tableau.

Les lignes vides de ce tableau sont prises en compte dans la détermination de la dernière ligne à traiter, ce qui induit une erreur puisque la quantité est nulle et une recopie sur 0 ligne n'a pas de sens.

Le plus simple est d'ajouter un test pour la prise en compte des lignes vides.

Sub test_creation_ligne()
Dim WsS As Worksheet, WsC As Worksheet
Dim Cel As Range, Cible As Range
    Set WsS = Worksheets("Feuil1")
    Set WsC = Worksheets("Feuil2")
    For Each Cel In WsS.Range("A2", WsS.Range("A" & Rows.Count).End(xlUp))
        Set Cible = WsC.Range("A" & Rows.Count).End(xlUp)(2)
        If Cel <> "" Then
            Cel.Offset(, 1).Copy Cible
            Cible.AutoFill Cible.Resize(Cel.Value)
        End If
    Next Cel
End Sub

A+

T'es un chef,

Le PC est fermé mais je test ça demain. Merci beaucoup.

Hello,

Je reviens car après essai du code dans mon fichier,

l'insertion se fait à chaque fois en dessous du tableau. j'ai ajouter une fonction effacer mais rien n'y fait mais ça ne change pas grand chose mise à part que je ne me trouve pas avec une liste à rallonge.

Merci

Bonjour,

Pourquoi placer un tableau en Feuil2 ?

Le traitement se fait très bien sans cela.

A+

Bonjour, et merci je regarde ça.

Simplement car j'ai Beaucoup d'autre donné qui viennent s'ajouter avec besoin de tri et autre.

ha, problème, je n'arrive pas à télécharger la PJ. Peux tu me mettre le code en accès direct? merci par avance.

Le même en version 97 - 2003 :

Sinon, je n'ai rien changé au code.

J'ai simplement converti le tableau en plage.

Sub test_creation_ligne()
Dim WsS As Worksheet, WsC As Worksheet
Dim Cel As Range, Cible As Range
    Set WsS = Worksheets("Feuil1")
    Set WsC = Worksheets("Feuil2")
    Worksheets("Feuil2").Range("A2:A60000").ClearContents
    For Each Cel In WsS.Range("A2", WsS.Range("A" & Rows.Count).End(xlUp))
        Set Cible = WsC.Range("A" & Rows.Count).End(xlUp)(2)
        If Cel <> "" Then
            Cel.Offset(, 1).Copy Cible
            Cible.AutoFill Cible.Resize(Cel.Value)
        End If
    Next Cel
    WsC.Activate
    Set WsS = Nothing: Set WsC = Nothing
End Sub

A+

Alors quand je fait 1 quantité ça ne fonction pas. j'ai une erreur. et je n'arrive pas à remplir mon tableau.

j'ai fait plusieurs essai d'effacement de ligne ou suppression de ligne mais rien n'y fait.

Effectivement, lorsqu'il n'y a qu'un élément la copie incrémentée n'a pas de sens.

A+

Merci tout plein!

je n'ai plus mon tableau mais c'est pas un problème. je vais faire un recherchev voir un index/equiv pour rapatrier les résultats dans mon tableau.

Rechercher des sujets similaires à "remplir feuille fonction valeurs"