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 Sub1er 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
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 FunctionBonjour 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.