Macro : création de fiche

Fermé
Younesoa Messages postés 1 Date d'inscription vendredi 10 mars 2017 Statut Membre Dernière intervention 10 mars 2017 - 10 mars 2017 à 16:03
via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 - 10 mars 2017 à 16:40
Bonjour,

Je dispose d'un tableau avec des noms de clients en lignes et plusieurs types d'informations en colonnes : je voudrais trouver un moyen pour créer une fiche par onglet pour chaque client avec le nom de celui-ci et les infos ( qui étaient en colonne) en lignes à partir de mon tableau.
Est-ce que cela est possible et si oui comment ?
En vous remerciant

A voir également:

1 réponse

via55 Messages postés 14474 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 19 septembre 2024 2 728
10 mars 2017 à 16:40
Bonjour

C'est possible avec une macro à mettre dans un module de l'éditeur VBA (ALT + F11 pour ouvrir l'éditeur puis Insertion Module - copier-coller la macro dans la page et fermer éditeur) puis lancer la macro ensuite à partir de la feuille du tableau en allant dans Developpeur - Macros - créer_onglets - Exécuter

Exemple de macro, à adapter (nom de la feuille de base, n° dernière colonne)
Sub créer_onglets()
Dim Ligne As Long
'dernière ligne remplie col A
Ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
' boucle sur les lignes de Feuil1
For n = 2 To Ligne
' ajoute une feuille en dernier
Sheets.Add After:=Sheets(Sheets.Count)
' renomme cette feuille avec le nom client
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = Sheets("Feuil1").Range("A" & n) 'MODIFIER Feuil1 si nécessaire
' place le nom client en A1 nouvelle feuille
Sheets(Sheets.Count).Range("A1") = Sheets("Feuil1").Range("A" & n) 'MODIFIER Feuil1 si nécessaire
' boucle sur les colonnes 2 a 5 de feuil1 
    For c = 2 To 5 ' REMPLACER le 5 par le n° de la dernière colonne
    ' place en col A  et en ligne c de la nouvelle feuille le titre de la colonne
    Sheets(Sheets.Count).Range("A" & c) = Sheets("Feuil1").Cells(1, c)
      ' place en col B et en ligne c de la nouvelle feuille l'infomation de Feuil1
    Sheets(Sheets.Count).Range("B" & c) = Sheets("Feuil1").Cells(Ligne, c)
    Next
 ' Repositionnement sur Feuil 1
Sheets("Feuil1").Select
Next
End Sub


Cdlmnt
Via
0