Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dupliquer dans Excel 2003 ?

13 réponses
Avatar
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

3 réponses

1 2
Avatar
CAP2
Salut Michel,

Si j'ai bien compris ce que tu veux faire, tu mets ton bouton en haut de ta
feuille, puis tu sélectionnes la ligne juste en dessous de ton bouton, puis
tu vas dans Fenêtre-->Figer les volets.

Du coup, tu peux descendre saisir plus bas, et les lignes avec ton bouton
restent visibles...

Ca marche ?

CAP2

"Michel69" a écrit dans le message de
news:
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" a écrit dans le message
de
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" a écrit dans le
>> message
>> 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" a écrit dans le
>> >> 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
>> >>
>> >>
>> >>
>>
>>
>>







Avatar
Michel69
Salut CAP2
Ton aide m'a été précieuse. Effectivement pour le "bouton" c'était simple,
il fallait y penser.
Dis-moi, en ligne 1 sur 12 feuilles (jan 09,fev 09....dec 09) j'ai les jours
de la semaine (L,M,M,J,V,S,D). t'aurais pas un bout de code qui me colore en
jaune par exemple, toutes les colonnes ayant D (comme dimanche) ?
Merci de nouveau
Michel

"CAP2" a écrit :

Salut Michel,

Si j'ai bien compris ce que tu veux faire, tu mets ton bouton en haut de ta
feuille, puis tu sélectionnes la ligne juste en dessous de ton bouton, puis
tu vas dans Fenêtre-->Figer les volets.

Du coup, tu peux descendre saisir plus bas, et les lignes avec ton bouton
restent visibles...

Ca marche ?

CAP2

"Michel69" a écrit dans le message de
news:
> 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" a écrit dans le message
>> de
>> 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" a écrit dans le
>> >> message
>> >> 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" a écrit dans le
>> >> >> 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
>> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>> >>
>>
>>
>>





Avatar
CAP2
Salut,

si j'ai bien compris ton pb, il n'y aura pas besoin de code ;o)

Partant du principe que tes 12 feuilles ont la même structure, tu les
sélectionnes toutes (en cliquant sur leur onglet avec CTRL appuyé), puis tu
sélectionnes la colonne que tu veux colorer, et tu colores. Ca sera appliqué
à toutes les feuilles sélectionnées...

Ca marche ?

CAP2

"Michel69" a écrit dans le message de
news:
Salut CAP2
Ton aide m'a été précieuse. Effectivement pour le "bouton" c'était simple,
il fallait y penser.
Dis-moi, en ligne 1 sur 12 feuilles (jan 09,fev 09....dec 09) j'ai les
jours
de la semaine (L,M,M,J,V,S,D). t'aurais pas un bout de code qui me colore
en
jaune par exemple, toutes les colonnes ayant D (comme dimanche) ?
Merci de nouveau
Michel

"CAP2" a écrit :

Salut Michel,

Si j'ai bien compris ce que tu veux faire, tu mets ton bouton en haut de
ta
feuille, puis tu sélectionnes la ligne juste en dessous de ton bouton,
puis
tu vas dans Fenêtre-->Figer les volets.

Du coup, tu peux descendre saisir plus bas, et les lignes avec ton bouton
restent visibles...

Ca marche ?

CAP2

"Michel69" a écrit dans le message
de
news:
> 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" a écrit dans le
>> message
>> de
>> 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" a écrit dans le
>> >> message
>> >> 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" a écrit dans le
>> >> >> 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
>> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>> >>
>>
>>
>>







1 2