Remplissage automatique si existe déjà

Bonjour à tous,

Je viens à vous car je suis débutant en vba et je flanche sur mon problème.

Le projet :

Mettre en place un tableau de nomenclature pour caractériser un produit, les lignes correspondent au diverses pièces qui composent le produit et les colonnes aux propriétés des pièces.

Le problème

Le tableau étant relativement long, je voudrai faciliter son utilisation. Il se trouve que plusieurs pièces peuvent être issues de la même géométrie(on peut voir ca comme la matière première), l'idée serait alors de mettre en place un VBA qui quand il remarque un type de géométrie apparaitre plusieurs fois , remplisse automatiquement les colonnes longueur et largeur avec les données de la première entrée, si c'est la première fois que la géométrie est entrée alors rien.

ex :

L3 CB : plaque A

L3 CC : 5

L3 CD : 5

Si une pièce en dessous est renseignée avec la même géométrie, alors on récupère directement les données en colonne C et D de la première pièce possédant cette géométrie et on les renseigne pour les pièces suivantes.

12nomenclature.xlsm (10.54 Ko)

petit plus : cela ne s'applique pas aux pièces de géométrie "volume"

je vous met en pj un tableau simplifié, bien plus long en réalité, mais cela me permettra de l'adapter sur mon tableau plus tard et de comprendre le programme.

Je vous remercie de votre temps passé sur mon problème par avance,

Cordialement, Pierre

Bonjour Pierre et le forum,
Une idée avec des RECHERCHEV.
Cdt
Papy Henri

Merci de ton retour afeh,

je me suis peut être mal exprimé, l'idée est que celui qui va devoir remplir le tableau n'ait pas à supprimer la formule recherchev pour rentrer une nouvelle donnée issue d'une nouvelle géométrie. S'il rentre plaque A la première fois, il puisse renseigner les données longueur & largeur, et s'il re choisit plaque A pour une nouvelle pièce, les données longueur & largeur se remplissent directement (pour éviter de retaper les données et donc limiter les sources d'erreurs), mais s'il choisit plaque XYZ et que c'est la première fois quelle apparaît, il puisse rentrer la longueur et la largeur sans avoir à supp la formule recherchev. En fouinant j'avais trouvé des macro de recherchev en vba, de vérification de doublon et de sélection de colonne d'un tableau spécifié mais alors pour rassembler tous ca.

Cordialement, Pierre

Salut,

Tu peux essayer cela en plaçant ce code dans la feuille de ton tableau

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%, LastLine%
Dim GeoChoisi$
Application.EnableEvents = False
LastLine = Range("B1").End(xlDown).Row
For i = 2 To LastLine
    If Cells(i, 2) <> "Volume" And Cells(i, 3) = "" Then
        GeoChoisi = Cells(i, 2).Value
        For j = 2 To LastLine
            If GeoChoisi = Cells(j, 2).Value Then
                Cells(i, 3).Value = Cells(j, 3).Value
                Cells(i, 4).Value = Cells(j, 4).Value
                Exit For
            End If
        Next j
    End If
Next i
Application.EnableEvents = True
End Sub

Salut Jers19,

Merci de ton retour, ton programme marche nickel, j'ai remarqué cependant que si je doit modifier la géométrie et passer de plaque A à plaque B, les données longueur et largeur ne s’actualise pas (bien entendu il faut que plaque B soit déjà rentré pour pouvoir récup les données). Et il possible également de rendre le programme lier au tableau, si je le déplace celui ci ne suit pas.

J'ai de mon coté recherché une piste, mais alors pour traduire ca en vba:

'programme qui vérifie à chaque modification
'x,y,z, sont des chiffres
'g,L,l sont des textes

'z = N°ligne de la fin de colonne "géométrie"
'x = N°ligne entre début de colonne "géométrie" et z
'y = N°ligne entre début de colonne "géométrie" et x

'pour toutes les cellules de (x,colonne "géométrie")
'si
'la valeur de g d'une cellule en (x,colonne "géométrie") est égale à la valeur de g d'une cellule en (y,colonne "géométrie")
'alors
'les valeurs de L et l de la cellule en (x,Longueur & largeur) sont alors également égales aux valeurs de L et l de la cellule (y,Longueur & largeur) avec qui elle partage le G identique
'sinon rien

Cordialement, Pierre

Salut Pierre,

Ce que tu demandes n'est pas très rigoureux d'un point de vue données.
Tu devrais avoir une table annexe "référence" contenant le nom de chaque pièce ainsi que ces dimensions avec le code qui va chercher les infos dans cette table.
Car là, en allant récupérer les valeurs de la 1ere ligne contenant le nom de la pièce, si tu fais une erreur sur cette ligne, tu vas appliquer les valeurs erronées à toutes tes valeurs

Bonjour à tous, merci pour vos aides, j'ai réussi a réaliser ce que j'avais en tête, c'est à dire:

-remplier automatiquement les données de la géométrie si celle ci à déjà été rentré dans le tableau

-regrouper les géométrie entre elles

-mettre en évidence la première géométrie d'une série de géométrie identique

il me reste plus qu'a lier le vba aux coordonnées tableau et non à la feuille et c'est parfait

11nomenclature.xlsm (24.64 Ko)
Rechercher des sujets similaires à "remplissage automatique existe deja"