Faire un copier/coller d'un tableau en fonction de la valeur d'une cellule

Bonjour à vous,

Première inscription, premier poste me concernant par conséquent je suis donc nouveau sur ce forum ^^

Je me permets de vous solliciter afin que vous m'apportiez une solution concernant une formule (je ne sais pas si c'est une formule d’ailleurs). Je m'explique.

J'ai un classeur comprenant treize feuilles, la première est la feuille qui comporte un tableau vierge que je souhaite renseigner, les autres avec les onglets en couleurs sont les feuilles où je souhaite prendre les données pour les mettre dans la première feuille.

Ma requête est simple, je souhaite dans le premier onglet, en fonction de la valeur de ma liste déroulante en B13, reprendre toutes les infos (nom de la structure, adresse postale, téléphone, mail, site internet, responsable commercial) de la feuille concernant et les copier dans le tableau vierge de ma première feuille.

Pour exemple: Si la valeur de ma cellule B13 dans ma première feuille = Produit bureautique, alors je souhaite avoir toutes infos (nom de la structure, adresse postale, téléphone, mail, site internet, responsable commercial) du tableau de la feuille "Contact Bureautique", copié dans mon tableau vierge de ma première feuille.

Si la valeur de ma cellule B13 dans ma première feuille = "Article natation", alors je souhaite avoir toutes infos (nom de la structure, adresse postale, téléphone, mail, site internet, responsable commercial) du tableau de la feuille "Contact articles natation", copié dans mon tableau vierge de ma première feuille. Et ainsi de suite pour les autres familles de produits.

Est-ce-que vous pourriez m'éclairer sur ce sujet ?

Cordialement

Bonjour,

En tout premier lieu, éviter autant que possible de fusionner les cellules si ce n'est pas absolument nécessaire (ce qui est ton cas), en second lieu, comme il y a peu de corrélation entre les noms de la liste de choix et les noms des feuilles, j'ai créé une fonction qui retourne le nom de la feuille en fonction du choix dans la liste, il aurait été plus facile si la liste contenait les noms des feuilles. Voici le code qui se trouve dans le module de la feuille "Liste des fournisseurs" :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Fe As String
    Dim Plage As Range

    If Target.Count > 1 Then Exit Sub
    If Target.Address(0, 0) <> "B6" Then Exit Sub

    Fe = NomFeuille(Target.Value)

    Set Plage = DefPlage(Worksheets(Fe), 2, 2)

    If Not Plage Is Nothing Then

        Me.Range(Me.Cells(6, 7), Me.Cells(Rows.Count, 12)).ClearContents
        Me.Range(Me.Cells(6, 7), Me.Cells(Plage.Rows.Count + 5, Plage.Columns.Count + 6)).Value = Plage.Value

    End If

End Sub

Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range

    On Error GoTo Fin

    With Fe

        Set DefPlage = .Range(.Cells(L, C), _
                       .Cells(.Cells.Find("*", .[A1], -4123, , _
                       1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                       2, 2).Column))

    End With

    Exit Function

Fin:

    Set DefPlage = Nothing

End Function

Function NomFeuille(Nom As String) As String

    NomFeuille = Switch(Nom = "PRODUIT BUREAUTIQUE", "Contacts bureautiques", _
                        Nom = "ARTICLE NATATION", "Contacts articles natation", _
                        Nom = "MAT LOISIR ET ÉQUIP BASSIN", "Contacts matériels loisirs équi", _
                        Nom = "PRODUIT TECH SPORTIF", "Contacts produits tech sportifs", _
                        Nom = "RÉCOMPENSE", "Contacts récompenses", _
                        Nom = "MAT INFORMATIQUE", "Contacts matériels info", _
                        Nom = "PRODUIT HIGH-TECH", "Contacts produits high-tech", _
                        Nom = "SUPPORT COMMUNICATION", "Contact support communication", _
                        Nom = "PRODUIT ÉNERGÉTIQUE", "Contacts produits énérgétiques", _
                        Nom = "MAT MÉDICAL ET PRODUIT RÉCUPÉRATION", "Contacts médical et récup", _
                        Nom = "MAT MUSCULATION", "Contacts matériels muscu", _
                        Nom = "MAT OPÉRATION ESTIVAL", "Contacts matériels opé estivale")

End Function

et voici ton classeur où je me suis farci toute la suppression des fusions (à quelques exceptions près) :

Merci de votre retour.

Oui en effet j'utilise assez souvent la fusion de cellules, encore désolé si vous vous êtes farci toute cette suppression des fusion

J'étais assez à l'ouest finalement de ce que je pensais.

Merci à vous

Donc, je peux en déduire que ça fonctionne comme tu veux ?

Oui tout fonctionne parfaitement

Merci à vous en tout cas

Rechercher des sujets similaires à "copier coller tableau fonction valeur"