Dupliquer dans Excel 2003 ?

Le
Michel69
Bonjour à toutes et à tous,
Tout d'abord un grand Merci à MPO pour son aide (et aux autres aussi..).
Sur une feuille j'ai des colonnes (noms, prénoms, âge.). Lorsque je saisi
une ligne sur cette feuille (feuil1), serait-il possible qu'en même temps
(ou en différé), ma ligne soit intégralement recopiée sur une autre feuille
portant le nom saisi.
En vous remerciant par avance
Michel69
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
CAP2
Le #16637221
Salut,

juste une question : La ligne doit être recopiée dans une feuille déjà
existante, ou faut-il que le code crée la feuille, puis recopie dedans ?

N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de calcul ?

OK, ça fait 2 questions ;o))

CAP2

"Michel69" news:
Bonjour à toutes et à tous,
Tout d'abord un grand Merci à MPO pour son aide (et aux autres aussi..).
Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque je
saisi
une ligne sur cette feuille (feuil1), serait-il possible qu'en même temps
(ou en différé), ma ligne soit intégralement recopiée sur une autre
feuille
portant le nom saisi.
En vous remerciant par avance
Michel69


Michel69
Le #16637041
Bonjour CAP2,
Merci pour ton aide.
En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà et
alors on copie la ligne à la suite des autres, soit l'onglet n'existe pas et
il faut le créer dans la foulée puis écrire la ligne...
Michel69

"CAP2" a écrit :

Salut,

juste une question : La ligne doit être recopiée dans une feuille déjà
existante, ou faut-il que le code crée la feuille, puis recopie dedans ?

N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de calcul ?

OK, ça fait 2 questions ;o))

CAP2

"Michel69" news:
> Bonjour à toutes et à tous,
> Tout d'abord un grand Merci à MPO pour son aide (et aux autres aussi..).
> Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque je
> saisi
> une ligne sur cette feuille (feuil1), serait-il possible qu'en même temps
> (ou en différé), ma ligne soit intégralement recopiée sur une autre
> feuille
> portant le nom saisi.
> En vous remerciant par avance
> Michel69





CAP2
Le #16640391
Salut,

je te propose une macro que tu déclenches dès que tu as saisi une nouvelle
personne (Mon code ne tiendra compte que de la DERNIERE personne saisie,
donc à chaque nouvelle saisie, tu déclenches la macro)

Sub Michel()
Dim i As Integer
Dim existe As Boolean
Dim nom As String

Application.ScreenUpdating = False

nom = Worksheets("Feuil1").Range("A65536").End(xlUp).Value

For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
existe = True
End If
Next

Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy

If existe = True Then
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
Else

Sheets.Add
ActiveSheet.Name = nom
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End If

Worksheets("Feuil1").Select
ActiveSheet.Range("A1").Select

Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub

Ca marche ?

CAP2

"Michel69" news:
Bonjour CAP2,
Merci pour ton aide.
En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà et
alors on copie la ligne à la suite des autres, soit l'onglet n'existe pas
et
il faut le créer dans la foulée puis écrire la ligne...
Michel69

"CAP2" a écrit :

Salut,

juste une question : La ligne doit être recopiée dans une feuille déjà
existante, ou faut-il que le code crée la feuille, puis recopie dedans ?

N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de calcul
?

OK, ça fait 2 questions ;o))

CAP2

"Michel69" de
news:
> Bonjour à toutes et à tous,
> Tout d'abord un grand Merci à MPO pour son aide (et aux autres
> aussi..).
> Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque je
> saisi
> une ligne sur cette feuille (feuil1), serait-il possible qu'en même
> temps
> (ou en différé), ma ligne soit intégralement recopiée sur une autre
> feuille
> portant le nom saisi.
> En vous remerciant par avance
> Michel69







Michel69
Le #16639911
(Re) CAP2,
J'ai recopié ton code dans un module standard et je l'ai placé derrière un
bouton. Je saisi un nom puis quand je clique sur le bouton il se plante sur :
Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
Cordialement
Michel

"CAP2" a écrit :

Salut,

je te propose une macro que tu déclenches dès que tu as saisi une nouvelle
personne (Mon code ne tiendra compte que de la DERNIERE personne saisie,
donc à chaque nouvelle saisie, tu déclenches la macro)

Sub Michel()
Dim i As Integer
Dim existe As Boolean
Dim nom As String

Application.ScreenUpdating = False

nom = Worksheets("Feuil1").Range("A65536").End(xlUp).Value

For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
existe = True
End If
Next

Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy

If existe = True Then
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
Else

Sheets.Add
ActiveSheet.Name = nom
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End If

Worksheets("Feuil1").Select
ActiveSheet.Range("A1").Select

Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub

Ca marche ?

CAP2

"Michel69" news:
> Bonjour CAP2,
> Merci pour ton aide.
> En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà et
> alors on copie la ligne à la suite des autres, soit l'onglet n'existe pas
> et
> il faut le créer dans la foulée puis écrire la ligne...
> Michel69
>
> "CAP2" a écrit :
>
>> Salut,
>>
>> juste une question : La ligne doit être recopiée dans une feuille déjà
>> existante, ou faut-il que le code crée la feuille, puis recopie dedans ?
>>
>> N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de calcul
>> ?
>>
>> OK, ça fait 2 questions ;o))
>>
>> CAP2
>>
>> "Michel69" >> de
>> news:
>> > Bonjour à toutes et à tous,
>> > Tout d'abord un grand Merci à MPO pour son aide (et aux autres
>> > aussi..).
>> > Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque je
>> > saisi
>> > une ligne sur cette feuille (feuil1), serait-il possible qu'en même
>> > temps
>> > (ou en différé), ma ligne soit intégralement recopiée sur une autre
>> > feuille
>> > portant le nom saisi.
>> > En vous remerciant par avance
>> > Michel69
>>
>>
>>





Michel69
Le #16639881
Merci pour tout CAP2. J'ai trouvé l'erreur et maintenant le code fonctionne
nickel
Croisement de patte (pas de feuil1) dans les noms de feuille.
nom = Worksheets("bdd").Range("A65536").End(xlUp).Value

For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
existe = True
End If
Next

Worksheets("bdd").Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy

If existe = True Then
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
Else

Sheets.Add
ActiveSheet.Name = nom
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End If

Worksheets("bdd").Select
................
Merci encore

"Michel69" a écrit :

(Re) CAP2,
J'ai recopié ton code dans un module standard et je l'ai placé derrière un
bouton. Je saisi un nom puis quand je clique sur le bouton il se plante sur :
Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
Cordialement
Michel

"CAP2" a écrit :

> Salut,
>
> je te propose une macro que tu déclenches dès que tu as saisi une nouvelle
> personne (Mon code ne tiendra compte que de la DERNIERE personne saisie,
> donc à chaque nouvelle saisie, tu déclenches la macro)
>
> Sub Michel()
> Dim i As Integer
> Dim existe As Boolean
> Dim nom As String
>
> Application.ScreenUpdating = False
>
> nom = Worksheets("Feuil1").Range("A65536").End(xlUp).Value
>
> For i = 1 To Sheets.Count
> If Sheets(i).Name = nom Then
> existe = True
> End If
> Next
>
> Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
> Selection.Copy
>
> If existe = True Then
> Worksheets(nom).Select
> ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
> ActiveSheet.Paste
> ActiveSheet.Range("A1").Select
> Else
>
> Sheets.Add
> ActiveSheet.Name = nom
> ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
> ActiveSheet.Paste
> ActiveSheet.Range("A1").Select
> End If
>
> Worksheets("Feuil1").Select
> ActiveSheet.Range("A1").Select
>
> Application.CutCopyMode = False
>
> Application.ScreenUpdating = True
>
> End Sub
>
> Ca marche ?
>
> CAP2
>
> "Michel69" > news:
> > Bonjour CAP2,
> > Merci pour ton aide.
> > En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà et
> > alors on copie la ligne à la suite des autres, soit l'onglet n'existe pas
> > et
> > il faut le créer dans la foulée puis écrire la ligne...
> > Michel69
> >
> > "CAP2" a écrit :
> >
> >> Salut,
> >>
> >> juste une question : La ligne doit être recopiée dans une feuille déjà
> >> existante, ou faut-il que le code crée la feuille, puis recopie dedans ?
> >>
> >> N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de calcul
> >> ?
> >>
> >> OK, ça fait 2 questions ;o))
> >>
> >> CAP2
> >>
> >> "Michel69" > >> de
> >> news:
> >> > Bonjour à toutes et à tous,
> >> > Tout d'abord un grand Merci à MPO pour son aide (et aux autres
> >> > aussi..).
> >> > Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque je
> >> > saisi
> >> > une ligne sur cette feuille (feuil1), serait-il possible qu'en même
> >> > temps
> >> > (ou en différé), ma ligne soit intégralement recopiée sur une autre
> >> > feuille
> >> > portant le nom saisi.
> >> > En vous remerciant par avance
> >> > Michel69
> >>
> >>
> >>
>
>
>


CAP2
Le #16639871
(Re)Salut,

ta feuille de saisie s'appelle-t-elle bien Feuil1 ?

Si oui, le problème ne vient pas de là. Tente de remplacer cette ligne par :

Worksheets("Feuil1").Select
Activesheet.Range("A65536").End(xlUp).EntireRow.Select

Ca marche mieux ?

CAP2

"Michel69" news:
(Re) CAP2,
J'ai recopié ton code dans un module standard et je l'ai placé derrière un
bouton. Je saisi un nom puis quand je clique sur le bouton il se plante
sur :
Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
Cordialement
Michel

"CAP2" a écrit :

Salut,

je te propose une macro que tu déclenches dès que tu as saisi une
nouvelle
personne (Mon code ne tiendra compte que de la DERNIERE personne saisie,
donc à chaque nouvelle saisie, tu déclenches la macro)

Sub Michel()
Dim i As Integer
Dim existe As Boolean
Dim nom As String

Application.ScreenUpdating = False

nom = Worksheets("Feuil1").Range("A65536").End(xlUp).Value

For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
existe = True
End If
Next

Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy

If existe = True Then
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
Else

Sheets.Add
ActiveSheet.Name = nom
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End If

Worksheets("Feuil1").Select
ActiveSheet.Range("A1").Select

Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub

Ca marche ?

CAP2

"Michel69" de
news:
> Bonjour CAP2,
> Merci pour ton aide.
> En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà
> et
> alors on copie la ligne à la suite des autres, soit l'onglet n'existe
> pas
> et
> il faut le créer dans la foulée puis écrire la ligne...
> Michel69
>
> "CAP2" a écrit :
>
>> Salut,
>>
>> juste une question : La ligne doit être recopiée dans une feuille déjà
>> existante, ou faut-il que le code crée la feuille, puis recopie dedans
>> ?
>>
>> N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de
>> calcul
>> ?
>>
>> OK, ça fait 2 questions ;o))
>>
>> CAP2
>>
>> "Michel69" >> message
>> de
>> news:
>> > Bonjour à toutes et à tous,
>> > Tout d'abord un grand Merci à MPO pour son aide (et aux autres
>> > aussi..).
>> > Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque
>> > je
>> > saisi
>> > une ligne sur cette feuille (feuil1), serait-il possible qu'en même
>> > temps
>> > (ou en différé), ma ligne soit intégralement recopiée sur une autre
>> > feuille
>> > portant le nom saisi.
>> > En vous remerciant par avance
>> > Michel69
>>
>>
>>







Michel69
Le #16639841
CAP2,
Ma feuille de saisie s'appelle BDD. J'ai remplacé et ton code fonctionne
parfaitement
Merci encore
Michel

"CAP2" a écrit :

(Re)Salut,

ta feuille de saisie s'appelle-t-elle bien Feuil1 ?

Si oui, le problème ne vient pas de là. Tente de remplacer cette ligne par :

Worksheets("Feuil1").Select
Activesheet.Range("A65536").End(xlUp).EntireRow.Select

Ca marche mieux ?

CAP2

"Michel69" news:
> (Re) CAP2,
> J'ai recopié ton code dans un module standard et je l'ai placé derrière un
> bouton. Je saisi un nom puis quand je clique sur le bouton il se plante
> sur :
> Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
> Cordialement
> Michel
>
> "CAP2" a écrit :
>
>> Salut,
>>
>> je te propose une macro que tu déclenches dès que tu as saisi une
>> nouvelle
>> personne (Mon code ne tiendra compte que de la DERNIERE personne saisie,
>> donc à chaque nouvelle saisie, tu déclenches la macro)
>>
>> Sub Michel()
>> Dim i As Integer
>> Dim existe As Boolean
>> Dim nom As String
>>
>> Application.ScreenUpdating = False
>>
>> nom = Worksheets("Feuil1").Range("A65536").End(xlUp).Value
>>
>> For i = 1 To Sheets.Count
>> If Sheets(i).Name = nom Then
>> existe = True
>> End If
>> Next
>>
>> Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
>> Selection.Copy
>>
>> If existe = True Then
>> Worksheets(nom).Select
>> ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
>> ActiveSheet.Paste
>> ActiveSheet.Range("A1").Select
>> Else
>>
>> Sheets.Add
>> ActiveSheet.Name = nom
>> ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
>> ActiveSheet.Paste
>> ActiveSheet.Range("A1").Select
>> End If
>>
>> Worksheets("Feuil1").Select
>> ActiveSheet.Range("A1").Select
>>
>> Application.CutCopyMode = False
>>
>> Application.ScreenUpdating = True
>>
>> End Sub
>>
>> Ca marche ?
>>
>> CAP2
>>
>> "Michel69" >> de
>> news:
>> > Bonjour CAP2,
>> > Merci pour ton aide.
>> > En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà
>> > et
>> > alors on copie la ligne à la suite des autres, soit l'onglet n'existe
>> > pas
>> > et
>> > il faut le créer dans la foulée puis écrire la ligne...
>> > Michel69
>> >
>> > "CAP2" a écrit :
>> >
>> >> Salut,
>> >>
>> >> juste une question : La ligne doit être recopiée dans une feuille déjà
>> >> existante, ou faut-il que le code crée la feuille, puis recopie dedans
>> >> ?
>> >>
>> >> N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de
>> >> calcul
>> >> ?
>> >>
>> >> OK, ça fait 2 questions ;o))
>> >>
>> >> CAP2
>> >>
>> >> "Michel69" >> >> message
>> >> de
>> >> news:
>> >> > Bonjour à toutes et à tous,
>> >> > Tout d'abord un grand Merci à MPO pour son aide (et aux autres
>> >> > aussi..).
>> >> > Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque
>> >> > je
>> >> > saisi
>> >> > une ligne sur cette feuille (feuil1), serait-il possible qu'en même
>> >> > temps
>> >> > (ou en différé), ma ligne soit intégralement recopiée sur une autre
>> >> > feuille
>> >> > portant le nom saisi.
>> >> > En vous remerciant par avance
>> >> > Michel69
>> >>
>> >>
>> >>
>>
>>
>>





Michel69
Le #16639831
CAP2
Ton code fonctionne parfaitement mais en changeant le nom feuil1 par celui
de ma feuille de saisie "BDD".
Puis-je te (re)mettre à contribution ? Dans la création de l'onglet s'il
n'existe pas quel serait le bout de code qui me permettrait de recopier
l'entête des colonnes de BDD 1 seule fois par fiche
Encore merci
Michel

"CAP2" a écrit :

Salut,

je te propose une macro que tu déclenches dès que tu as saisi une nouvelle
personne (Mon code ne tiendra compte que de la DERNIERE personne saisie,
donc à chaque nouvelle saisie, tu déclenches la macro)

Sub Michel()
Dim i As Integer
Dim existe As Boolean
Dim nom As String

Application.ScreenUpdating = False

nom = Worksheets("Feuil1").Range("A65536").End(xlUp).Value

For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
existe = True
End If
Next

Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy

If existe = True Then
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
Else

Sheets.Add
ActiveSheet.Name = nom
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End If

Worksheets("Feuil1").Select
ActiveSheet.Range("A1").Select

Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub

Ca marche ?

CAP2

"Michel69" news:
> Bonjour CAP2,
> Merci pour ton aide.
> En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà et
> alors on copie la ligne à la suite des autres, soit l'onglet n'existe pas
> et
> il faut le créer dans la foulée puis écrire la ligne...
> Michel69
>
> "CAP2" a écrit :
>
>> Salut,
>>
>> juste une question : La ligne doit être recopiée dans une feuille déjà
>> existante, ou faut-il que le code crée la feuille, puis recopie dedans ?
>>
>> N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de calcul
>> ?
>>
>> OK, ça fait 2 questions ;o))
>>
>> CAP2
>>
>> "Michel69" >> de
>> news:
>> > Bonjour à toutes et à tous,
>> > Tout d'abord un grand Merci à MPO pour son aide (et aux autres
>> > aussi..).
>> > Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque je
>> > saisi
>> > une ligne sur cette feuille (feuil1), serait-il possible qu'en même
>> > temps
>> > (ou en différé), ma ligne soit intégralement recopiée sur une autre
>> > feuille
>> > portant le nom saisi.
>> > En vous remerciant par avance
>> > Michel69
>>
>>
>>





CAP2
Le #16641631
Excuse de l'attente,

remplace mon 1er code par celui-ci, et tes en-têtes seront écrits
automatiquement quand il créera une nouvelle feuille !

Private Sub CommandButton1_Click()
Dim i As Integer
Dim existe As Boolean
Dim nom As String

Application.ScreenUpdating = False

nom = Worksheets("BDD").Range("A65536").End(xlUp).Value

For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
existe = True
End If
Next

If existe = True Then
Worksheets("BDD").Select
ActiveSheet.Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
Else

Sheets.Add
ActiveSheet.Name = nom
Worksheets("BDD").Select
ActiveSheet.Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Worksheets(nom).Select
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
Worksheets("BDD").Select
ActiveSheet.Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End If

Worksheets("BDD").Select
ActiveSheet.Range("A1").Select

Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub

Ca marche ?

CAP2

"Michel69" news:
CAP2
Ton code fonctionne parfaitement mais en changeant le nom feuil1 par celui
de ma feuille de saisie "BDD".
Puis-je te (re)mettre à contribution ? Dans la création de l'onglet s'il
n'existe pas quel serait le bout de code qui me permettrait de recopier
l'entête des colonnes de BDD 1 seule fois par fiche
Encore merci
Michel

"CAP2" a écrit :

Salut,

je te propose une macro que tu déclenches dès que tu as saisi une
nouvelle
personne (Mon code ne tiendra compte que de la DERNIERE personne saisie,
donc à chaque nouvelle saisie, tu déclenches la macro)

Sub Michel()
Dim i As Integer
Dim existe As Boolean
Dim nom As String

Application.ScreenUpdating = False

nom = Worksheets("Feuil1").Range("A65536").End(xlUp).Value

For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
existe = True
End If
Next

Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy

If existe = True Then
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
Else

Sheets.Add
ActiveSheet.Name = nom
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End If

Worksheets("Feuil1").Select
ActiveSheet.Range("A1").Select

Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub

Ca marche ?

CAP2

"Michel69" de
news:
> Bonjour CAP2,
> Merci pour ton aide.
> En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà
> et
> alors on copie la ligne à la suite des autres, soit l'onglet n'existe
> pas
> et
> il faut le créer dans la foulée puis écrire la ligne...
> Michel69
>
> "CAP2" a écrit :
>
>> Salut,
>>
>> juste une question : La ligne doit être recopiée dans une feuille déjà
>> existante, ou faut-il que le code crée la feuille, puis recopie dedans
>> ?
>>
>> N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de
>> calcul
>> ?
>>
>> OK, ça fait 2 questions ;o))
>>
>> CAP2
>>
>> "Michel69" >> message
>> de
>> news:
>> > Bonjour à toutes et à tous,
>> > Tout d'abord un grand Merci à MPO pour son aide (et aux autres
>> > aussi..).
>> > Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque
>> > je
>> > saisi
>> > une ligne sur cette feuille (feuil1), serait-il possible qu'en même
>> > temps
>> > (ou en différé), ma ligne soit intégralement recopiée sur une autre
>> > feuille
>> > portant le nom saisi.
>> > En vous remerciant par avance
>> > Michel69
>>
>>
>>







Michel69
Le #16647371
Merci pour tout CAP2, tout fonctionne comme je le souhaitais.
Tu ne connaîtrais pas la 'commande' pour q'un bouton sur une feuille ne
bouge pas avec elle ?

"CAP2" a écrit :

Excuse de l'attente,

remplace mon 1er code par celui-ci, et tes en-têtes seront écrits
automatiquement quand il créera une nouvelle feuille !

Private Sub CommandButton1_Click()
Dim i As Integer
Dim existe As Boolean
Dim nom As String

Application.ScreenUpdating = False

nom = Worksheets("BDD").Range("A65536").End(xlUp).Value

For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then
existe = True
End If
Next

If existe = True Then
Worksheets("BDD").Select
ActiveSheet.Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
Else

Sheets.Add
ActiveSheet.Name = nom
Worksheets("BDD").Select
ActiveSheet.Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Worksheets(nom).Select
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
Worksheets("BDD").Select
ActiveSheet.Range("A65536").End(xlUp).EntireRow.Select
Selection.Copy
Worksheets(nom).Select
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveSheet.Range("A1").Select
End If

Worksheets("BDD").Select
ActiveSheet.Range("A1").Select

Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub

Ca marche ?

CAP2

"Michel69" news:
> CAP2
> Ton code fonctionne parfaitement mais en changeant le nom feuil1 par celui
> de ma feuille de saisie "BDD".
> Puis-je te (re)mettre à contribution ? Dans la création de l'onglet s'il
> n'existe pas quel serait le bout de code qui me permettrait de recopier
> l'entête des colonnes de BDD 1 seule fois par fiche
> Encore merci
> Michel
>
> "CAP2" a écrit :
>
>> Salut,
>>
>> je te propose une macro que tu déclenches dès que tu as saisi une
>> nouvelle
>> personne (Mon code ne tiendra compte que de la DERNIERE personne saisie,
>> donc à chaque nouvelle saisie, tu déclenches la macro)
>>
>> Sub Michel()
>> Dim i As Integer
>> Dim existe As Boolean
>> Dim nom As String
>>
>> Application.ScreenUpdating = False
>>
>> nom = Worksheets("Feuil1").Range("A65536").End(xlUp).Value
>>
>> For i = 1 To Sheets.Count
>> If Sheets(i).Name = nom Then
>> existe = True
>> End If
>> Next
>>
>> Worksheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Select
>> Selection.Copy
>>
>> If existe = True Then
>> Worksheets(nom).Select
>> ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
>> ActiveSheet.Paste
>> ActiveSheet.Range("A1").Select
>> Else
>>
>> Sheets.Add
>> ActiveSheet.Name = nom
>> ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
>> ActiveSheet.Paste
>> ActiveSheet.Range("A1").Select
>> End If
>>
>> Worksheets("Feuil1").Select
>> ActiveSheet.Range("A1").Select
>>
>> Application.CutCopyMode = False
>>
>> Application.ScreenUpdating = True
>>
>> End Sub
>>
>> Ca marche ?
>>
>> CAP2
>>
>> "Michel69" >> de
>> news:
>> > Bonjour CAP2,
>> > Merci pour ton aide.
>> > En fait, en fonction du nom saisi sur feuil1, soit l'onglet existe déjà
>> > et
>> > alors on copie la ligne à la suite des autres, soit l'onglet n'existe
>> > pas
>> > et
>> > il faut le créer dans la foulée puis écrire la ligne...
>> > Michel69
>> >
>> > "CAP2" a écrit :
>> >
>> >> Salut,
>> >>
>> >> juste une question : La ligne doit être recopiée dans une feuille déjà
>> >> existante, ou faut-il que le code crée la feuille, puis recopie dedans
>> >> ?
>> >>
>> >> N'y aura-t-il donc qu'une seule ligne dans chacune des feuilles de
>> >> calcul
>> >> ?
>> >>
>> >> OK, ça fait 2 questions ;o))
>> >>
>> >> CAP2
>> >>
>> >> "Michel69" >> >> message
>> >> de
>> >> news:
>> >> > Bonjour à toutes et à tous,
>> >> > Tout d'abord un grand Merci à MPO pour son aide (et aux autres
>> >> > aussi..).
>> >> > Sur une feuille j'ai des colonnes (noms, prénoms, âge....). Lorsque
>> >> > je
>> >> > saisi
>> >> > une ligne sur cette feuille (feuil1), serait-il possible qu'en même
>> >> > temps
>> >> > (ou en différé), ma ligne soit intégralement recopiée sur une autre
>> >> > feuille
>> >> > portant le nom saisi.
>> >> > En vous remerciant par avance
>> >> > Michel69
>> >>
>> >>
>> >>
>>
>>
>>





Publicité
Poster une réponse
Anonyme