Plusieurs problemes

Bonjour,

Je vais vous expliquer mes problèmes:

J'ai une base de données sur une feuille1 avec 7 colonnes qui sont Nom, Prénoms, adresses etc ...

sur la feuille2 j'ai une "mise en forme" de base ou seront copiés les Noms, Prénoms etc de la feuille1.

1) Je voulais une macro qui me permettrai d'ouvrir un onglet pour chaque noms différents.

J'ai trouvé ce code qui marche à merveille.

Option Explicit
Dim maColonne As Integer

Sub AjoutFeuilles()
Dim derLi As Long
Dim i As Integer
Dim maFeuille As Worksheet
Set maFeuille = ActiveSheet

maColonne = 3 ' a ajuster

derLi = Columns(maColonne).Find("*", , , , , xlPrevious).Row
For i = 2 To derLi ' 2 si ligne de titre
  'Si la feuille existe déjà, on passe à la ligne suivante
  If FeuilleExiste(maFeuille.Cells(i, maColonne)) Then GoTo Suivant
  ' ajout d'une feuille à la fin
  Sheets.Add after:=Sheets(Worksheets.Count)
  ' nom de la feuille = valeur de la cellule
  Sheets(Worksheets.Count).Name = maFeuille.Cells(i, maColonne)
Suivant:
Next
'on retourne à la feuille d'origine
maFeuille.Select
Set maFeuille = Nothing
End Sub
Function FeuilleExiste(Nom$) As Boolean 'Ti
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = maColonne Then AjoutFeuilles
End Sub

1er problème:

J'aimerais que cette macro fasse la même chose mais en incorporant ma "mise en forme" de base et non pas une feuille vierge.

Es possible? si oui comment faire?

J'aimerais aussi dans cette macro qu'il me crée un lien hypertexte "Emplacement dans ce document" sur le Nom de famille correspondant au Nom et de la page crée.

(J'ai mis un exemple de le fichier joint)

2 eme problème:

Je ne sais pas du tout comment faire pour incorporer les données avec une macro suivant le Nom (colonne B) vers la feuille Robert par ex tout en respectant ma mise en forme. (j'ai joint le fichier excel qui est un exemple de ce que je veux)

D'apres mes recherches, il faudrait utiliser la fonction "recherchev" combiné avec un "ID"

Ne connaissant du tout excel, je ne sais pas comment m'y prendre.

Si vous pouvez m'orienter , ça serait sympa.

Cordialement.

Julien

18classeur1.xlsm (23.32 Ko)

Bonjour,

une proposition, (ne remplace pas les feuilles existantes)

Sub AjoutFeuilles()
    Dim derLi As Long
    Dim i As Integer
    Dim maFeuille As Worksheet
    Set maFeuille = ActiveSheet
    Dim ws

    maColonne = 2    ' a ajuster

    derLi = Columns(maColonne).Find("*", , , , , xlPrevious).Row
    On Error Resume Next
    maFeuille.Hyperlinks.Delete
    On Error GoTo 0
    For i = 2 To derLi    ' 2 si ligne de titre
        'Si la feuille existe déjà, on passe à la ligne suivante
        If FeuilleExiste(maFeuille.Cells(i, maColonne)) Then
        Else    ' ajout d'une feuille à la fin
            Sheets("base").Copy after:=Sheets(Worksheets.Count)
            ' nom de la feuille = valeur de la cellule
            Set ws = Sheets(Worksheets.Count)
            ws.Name = maFeuille.Cells(i, maColonne)
            ws.[B2] = maFeuille.Cells(i, 1)
            ws.[B9] = maFeuille.Cells(i, 2)
            maFeuille.Hyperlinks.Add anchor:=maFeuille.Cells(i, 2), Address:="", SubAddress:=ws.Name & "!A1", TextToDisplay:=ws.Name
            ws.[B10] = maFeuille.Cells(i, 3)
            ws.[B11] = maFeuille.Cells(i, 4)
            ws.[B12] = maFeuille.Cells(i, 5)
            ws.[B13] = maFeuille.Cells(i, 6)
            ws.[G9] = maFeuille.Cells(i, 7)
            ws.[D20] = maFeuille.Cells(i, 8)
        End If
    Next
    'on retourne à la feuille d'origine
    maFeuille.Select
    Set maFeuille = Nothing
End Sub
Function FeuilleExiste(Nom$) As Boolean    'Ti
    On Error Resume Next
    FeuilleExiste = Sheets(Nom).Name <> ""
End Function

Bonjour h2so4,

Tu as compris exactement ce que je voulais faire, ta macro fonctionne correctement.

J'ai plus qu'a comprendre les étapes de la macro pour l'adapter.

Je te remercie beaucoup.

Rechercher des sujets similaires à "problemes"