Copier d'une ligne dans une zone

Le
Fredo(67)
Bonjour,

j'ai un tableau qui représente la liste des salariés de mon
entreprise.

Cette liste s'étend de A1 à NF150
En A les matricules, en B les noms, en C les prénoms, de D à NF les
jours de l'année
Les lignes 1 à 4 sont les en-têtes des colonnes
En regard de chaque ouvrier le nombre d'heures effectuée pour chaque
jour.

Ce que je voudrais, pour faciliter la saisie de mon opératrice c'est,
par macro,
recopier la saisie de la semaine sur l'ensemble des ouvriers.

Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
Si la semaine est "standard" alors Clic sur un bouton => et recopie de
ces valeur de la ligne 6 à la ligne 150.

De plus, il se peut que le nombre de ligne varie en fonction des
départs et des arrivées dans l'entreprise, d'où une variation de la
position de la dernière ligne.

J'avais pensé noter cette formule dans toutes les cellules de mon
tableau
en G6 : =G5
ce qui aurai copié toutes les saisies automatiquement, mais je préfèr=
e
qu'il y ait une intervention manuelle.

Quel pourrait être le code d'une telle macro ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #24168641
Bonjour,

A ) Tu remplis la première ligne soit avec des formules ou des données de ton tableau de la colonne G à la colonne NF

B ) et pour recopier cette ligne sur l'ensemble des lignes du tableau, tu affectes cette macro à un bouton dans la feuille.

C ) Tu adaptes le nom de la feuille dans la procédure.

'-----------------------------------
Sub test1()
Dim DerLig As Long
With Worksheets("Feuil1") 'Nom feuille à adapter
DerLig = .Range("G:NF").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Range("G5:Nf" & DerLig).FillDown
End With
End Sub
'-----------------------------------


MichD
------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


Bonjour,

j'ai un tableau qui représente la liste des salariés de mon
entreprise.

Cette liste s'étend de A1 à NF150
En A les matricules, en B les noms, en C les prénoms, de D à NF les
jours de l'année
Les lignes 1 à 4 sont les en-têtes des colonnes
En regard de chaque ouvrier le nombre d'heures effectuée pour chaque
jour.

Ce que je voudrais, pour faciliter la saisie de mon opératrice c'est,
par macro,
recopier la saisie de la semaine sur l'ensemble des ouvriers.

Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
Si la semaine est "standard" alors Clic sur un bouton => et recopie de
ces valeur de la ligne 6 à la ligne 150.

De plus, il se peut que le nombre de ligne varie en fonction des
départs et des arrivées dans l'entreprise, d'où une variation de la
position de la dernière ligne.

J'avais pensé noter cette formule dans toutes les cellules de mon
tableau
en G6 : =G5
ce qui aurai copié toutes les saisies automatiquement, mais je préfère
qu'il y ait une intervention manuelle.

Quel pourrait être le code d'une telle macro ?

Merci
Fredo(67)
Le #24168631
Merci beaucoup

je vais tester ça de suite...


On 16 jan, 16:44, "MichD"
Bonjour,

A ) Tu remplis la première ligne soit avec des formules ou des donnée s de ton tableau de la colonne G à la colonne NF

B ) et pour recopier cette ligne sur l'ensemble des lignes du tableau, tu affectes cette macro à un bouton dans la feuille.

C ) Tu adaptes le nom de la feuille dans la procédure.

'-----------------------------------
Sub test1()
Dim DerLig As Long
With Worksheets("Feuil1") 'Nom feuille à adapter
    DerLig = .Range("G:NF").Find(What:="*", _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious).Ro w
    .Range("G5:Nf" & DerLig).FillDown
End With
End Sub
'-----------------------------------

MichD
------------------------------------------
"Fredo(67)"  a écrit dans le message de groupe de discussion :


Bonjour,

j'ai un tableau qui représente la liste des salariés de mon
entreprise.

Cette liste s'étend de A1 à NF150
En A les matricules, en B les noms, en C les prénoms, de D à NF les
jours de l'année
Les lignes 1 à 4 sont les en-têtes des colonnes
En regard de chaque ouvrier le nombre d'heures effectuée pour chaque
jour.

Ce que je voudrais, pour faciliter la saisie de mon opératrice c'est,
par macro,
recopier la saisie de la semaine sur l'ensemble des ouvriers.

Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
Si la semaine est "standard" alors Clic sur un bouton => et recopie de
ces valeur de la ligne 6 à la ligne 150.

De plus, il se peut que le nombre de ligne varie en fonction des
départs et des arrivées dans l'entreprise, d'où une variation de la
position de la dernière ligne.

J'avais pensé noter cette formule dans toutes les cellules de mon
tableau
en G6 : =G5
ce qui aurai copié toutes les saisies automatiquement, mais je préf ère
qu'il y ait une intervention manuelle.

Quel pourrait être le code d'une telle macro ?

Merci
Fredo(67)
Le #24168911
1er Feedback

ça marche (qui en aurait douté)
maintenant, comment pourrait on modifier cette procédure pour que la
copie ne se fasse que sur les cellules sélectionnées..

càd qu'elle puisse copier 1 jour, 1 semaine, 1 mois selon la zone
qu'elle a sélectionné avant de cliquer sur le bouton ?

Merci



On 16 jan, 16:48, "Fredo(67)"
Merci beaucoup

je vais tester ça de suite...

On 16 jan, 16:44, "MichD"


> Bonjour,

> A ) Tu remplis la première ligne soit avec des formules ou des donn ées de ton tableau de la colonne G à la colonne NF

> B ) et pour recopier cette ligne sur l'ensemble des lignes du tableau, tu affectes cette macro à un bouton dans la feuille.

> C ) Tu adaptes le nom de la feuille dans la procédure.

> '-----------------------------------
> Sub test1()
> Dim DerLig As Long
> With Worksheets("Feuil1") 'Nom feuille à adapter
>     DerLig = .Range("G:NF").Find(What:="*", _
>                     LookIn:=xlFormulas, _
>                     SearchOrder:=xlByRows, _
>                     SearchDirection:=xlPrevious). Row
>     .Range("G5:Nf" & DerLig).FillDown
> End With
> End Sub
> '-----------------------------------

> MichD
> ------------------------------------------
> "Fredo(67)"  a écrit dans le message de groupe de discussion :
>

> Bonjour,

> j'ai un tableau qui représente la liste des salariés de mon
> entreprise.

> Cette liste s'étend de A1 à NF150
> En A les matricules, en B les noms, en C les prénoms, de D à NF les
> jours de l'année
> Les lignes 1 à 4 sont les en-têtes des colonnes
> En regard de chaque ouvrier le nombre d'heures effectuée pour chaque
> jour.

> Ce que je voudrais, pour faciliter la saisie de mon opératrice c'est,
> par macro,
> recopier la saisie de la semaine sur l'ensemble des ouvriers.

> Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
> Si la semaine est "standard" alors Clic sur un bouton => et recopie d e
> ces valeur de la ligne 6 à la ligne 150.

> De plus, il se peut que le nombre de ligne varie en fonction des
> départs et des arrivées dans l'entreprise, d'où une variation de la
> position de la dernière ligne.

> J'avais pensé noter cette formule dans toutes les cellules de mon
> tableau
> en G6 : =G5
> ce qui aurai copié toutes les saisies automatiquement, mais je préf ère
> qu'il y ait une intervention manuelle.

> Quel pourrait être le code d'une telle macro ?

> Merci- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
MichD
Le #24168901
Donne un exemple concret de ce que tu entends par "zone sélectionnée" et
ce que devrait être la recopie.



MichD
------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


1er Feedback

ça marche (qui en aurait douté)
maintenant, comment pourrait on modifier cette procédure pour que la
copie ne se fasse que sur les cellules sélectionnées..

càd qu'elle puisse copier 1 jour, 1 semaine, 1 mois selon la zone
qu'elle a sélectionné avant de cliquer sur le bouton ?

Merci



On 16 jan, 16:48, "Fredo(67)"
Merci beaucoup

je vais tester ça de suite...

On 16 jan, 16:44, "MichD"


> Bonjour,

> A ) Tu remplis la première ligne soit avec des formules ou des données de ton tableau de la colonne G à la colonne NF

> B ) et pour recopier cette ligne sur l'ensemble des lignes du tableau, tu affectes cette macro à un bouton dans la
> feuille.

> C ) Tu adaptes le nom de la feuille dans la procédure.

> '-----------------------------------
> Sub test1()
> Dim DerLig As Long
> With Worksheets("Feuil1") 'Nom feuille à adapter
> DerLig = .Range("G:NF").Find(What:="*", _
> LookIn:=xlFormulas, _
> SearchOrder:=xlByRows, _
> SearchDirection:=xlPrevious).Row
> .Range("G5:Nf" & DerLig).FillDown
> End With
> End Sub
> '-----------------------------------

> MichD
> ------------------------------------------
> "Fredo(67)" a écrit dans le message de groupe de discussion :
>

> Bonjour,

> j'ai un tableau qui représente la liste des salariés de mon
> entreprise.

> Cette liste s'étend de A1 à NF150
> En A les matricules, en B les noms, en C les prénoms, de D à NF les
> jours de l'année
> Les lignes 1 à 4 sont les en-têtes des colonnes
> En regard de chaque ouvrier le nombre d'heures effectuée pour chaque
> jour.

> Ce que je voudrais, pour faciliter la saisie de mon opératrice c'est,
> par macro,
> recopier la saisie de la semaine sur l'ensemble des ouvriers.

> Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
> Si la semaine est "standard" alors Clic sur un bouton => et recopie de
> ces valeur de la ligne 6 à la ligne 150.

> De plus, il se peut que le nombre de ligne varie en fonction des
> départs et des arrivées dans l'entreprise, d'où une variation de la
> position de la dernière ligne.

> J'avais pensé noter cette formule dans toutes les cellules de mon
> tableau
> en G6 : =G5
> ce qui aurai copié toutes les saisies automatiquement, mais je préfère
> qu'il y ait une intervention manuelle.

> Quel pourrait être le code d'une telle macro ?

> Merci- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Fredo(67)
Le #24168891
Ben en fait elle me dit
- Parfois il faut copier la semaine (soit de la colonne G à L)
- Parfois c'est juste une journée (soit une colonne)
- Parfois c'est un moi entier (soit de la colonne BN à CR)

L'étendue de la copie doit être l'aplomb des cellules sélectionnées
par exemple Sélection : G5:L5 => G5 Doit être copié sur G6:G143; H 5
=> Sur H6:H143; I5 SUR I6:I143 et ainsi de suite...




On 16 jan, 17:48, "MichD"
Donne un exemple concret de ce que tu entends par "zone sélectionnée" et
ce que devrait être la recopie.

MichD
------------------------------------------
"Fredo(67)"  a écrit dans le message de groupe de discussion :


1er Feedback

ça marche (qui en aurait douté)
maintenant, comment pourrait on modifier cette procédure pour que la
copie ne se fasse que sur les cellules sélectionnées..

càd qu'elle puisse copier 1 jour, 1 semaine, 1 mois selon la zone
qu'elle a sélectionné avant de cliquer sur le bouton ?

Merci

On 16 jan, 16:48, "Fredo(67)"


> Merci beaucoup

> je vais tester ça de suite...

> On 16 jan, 16:44, "MichD"
> > Bonjour,

> > A ) Tu remplis la première ligne soit avec des formules ou des donn ées de ton tableau de la colonne G à la colonne NF

> > B ) et pour recopier cette ligne sur l'ensemble des lignes du tableau , tu affectes cette macro à un bouton dans la
> > feuille.

> > C ) Tu adaptes le nom de la feuille dans la procédure.

> > '-----------------------------------
> > Sub test1()
> > Dim DerLig As Long
> > With Worksheets("Feuil1") 'Nom feuille à adapter
> >     DerLig = .Range("G:NF").Find(What:="*", _
> >                     LookIn:=xlFormulas, _
> >                     SearchOrder:=xlByRows, _
> >                     SearchDirection:=xlPrevious ).Row
> >     .Range("G5:Nf" & DerLig).FillDown
> > End With
> > End Sub
> > '-----------------------------------

> > MichD
> > ------------------------------------------
> > "Fredo(67)"  a écrit dans le message de groupe de discussion :
> >

> > Bonjour,

> > j'ai un tableau qui représente la liste des salariés de mon
> > entreprise.

> > Cette liste s'étend de A1 à NF150
> > En A les matricules, en B les noms, en C les prénoms, de D à NF l es
> > jours de l'année
> > Les lignes 1 à 4 sont les en-têtes des colonnes
> > En regard de chaque ouvrier le nombre d'heures effectuée pour chaqu e
> > jour.

> > Ce que je voudrais, pour faciliter la saisie de mon opératrice c'es t,
> > par macro,
> > recopier la saisie de la semaine sur l'ensemble des ouvriers.

> > Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
> > Si la semaine est "standard" alors Clic sur un bouton => et recopie de
> > ces valeur de la ligne 6 à la ligne 150.

> > De plus, il se peut que le nombre de ligne varie en fonction des
> > départs et des arrivées dans l'entreprise, d'où une variation d e la
> > position de la dernière ligne.

> > J'avais pensé noter cette formule dans toutes les cellules de mon
> > tableau
> > en G6 : =G5
> > ce qui aurai copié toutes les saisies automatiquement, mais je pr éfère
> > qu'il y ait une intervention manuelle.

> > Quel pourrait être le code d'une telle macro ?

> > Merci- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
MichD
Le #24169211
Ceci devrait coller la première ligne de la sélection de la feuil1 jusqu'à la dernière ligne occupée
dans la colonne A.

La sélection devrait comporter seulement une ligne...sinon c'est la première ligne de la sélection qui est utilisée par
défaut.

'----------------------------------
Sub test1()
Dim DerLig As Long, Adr As String
With Worksheets("Feuil1") 'Nom feuille à adapter
's'assurer que la sélection est dans ladite feuille
If Selection.Parent.Name = .Name Then
's'assurer que la sélection représente une plage de cellule
If TypeName(Selection) = "Range" Then
DerLig = .Range("A:A").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Adr = Selection.Rows(1).Address
.Range(Adr).Resize(DerLig - 1).FillDown
End If
End If
End With
End Sub
'----------------------------------



MichD
------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


Ben en fait elle me dit
- Parfois il faut copier la semaine (soit de la colonne G à L)
- Parfois c'est juste une journée (soit une colonne)
- Parfois c'est un moi entier (soit de la colonne BN à CR)

L'étendue de la copie doit être l'aplomb des cellules sélectionnées
par exemple Sélection : G5:L5 => G5 Doit être copié sur G6:G143; H5
=> Sur H6:H143; I5 SUR I6:I143 et ainsi de suite...




On 16 jan, 17:48, "MichD"
Donne un exemple concret de ce que tu entends par "zone sélectionnée" et
ce que devrait être la recopie.

MichD
------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


1er Feedback

ça marche (qui en aurait douté)
maintenant, comment pourrait on modifier cette procédure pour que la
copie ne se fasse que sur les cellules sélectionnées..

càd qu'elle puisse copier 1 jour, 1 semaine, 1 mois selon la zone
qu'elle a sélectionné avant de cliquer sur le bouton ?

Merci

On 16 jan, 16:48, "Fredo(67)"


> Merci beaucoup

> je vais tester ça de suite...

> On 16 jan, 16:44, "MichD"
> > Bonjour,

> > A ) Tu remplis la première ligne soit avec des formules ou des données de ton tableau de la colonne G à la colonne NF

> > B ) et pour recopier cette ligne sur l'ensemble des lignes du tableau, tu affectes cette macro à un bouton dans la
> > feuille.

> > C ) Tu adaptes le nom de la feuille dans la procédure.

> > '-----------------------------------
> > Sub test1()
> > Dim DerLig As Long
> > With Worksheets("Feuil1") 'Nom feuille à adapter
> > DerLig = .Range("G:NF").Find(What:="*", _
> > LookIn:=xlFormulas, _
> > SearchOrder:=xlByRows, _
> > SearchDirection:=xlPrevious).Row
> > .Range("G5:Nf" & DerLig).FillDown
> > End With
> > End Sub
> > '-----------------------------------

> > MichD
> > ------------------------------------------
> > "Fredo(67)" a écrit dans le message de groupe de discussion :
> >

> > Bonjour,

> > j'ai un tableau qui représente la liste des salariés de mon
> > entreprise.

> > Cette liste s'étend de A1 à NF150
> > En A les matricules, en B les noms, en C les prénoms, de D à NF les
> > jours de l'année
> > Les lignes 1 à 4 sont les en-têtes des colonnes
> > En regard de chaque ouvrier le nombre d'heures effectuée pour chaque
> > jour.

> > Ce que je voudrais, pour faciliter la saisie de mon opératrice c'est,
> > par macro,
> > recopier la saisie de la semaine sur l'ensemble des ouvriers.

> > Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
> > Si la semaine est "standard" alors Clic sur un bouton => et recopie de
> > ces valeur de la ligne 6 à la ligne 150.

> > De plus, il se peut que le nombre de ligne varie en fonction des
> > départs et des arrivées dans l'entreprise, d'où une variation de la
> > position de la dernière ligne.

> > J'avais pensé noter cette formule dans toutes les cellules de mon
> > tableau
> > en G6 : =G5
> > ce qui aurai copié toutes les saisies automatiquement, mais je préfère
> > qu'il y ait une intervention manuelle.

> > Quel pourrait être le code d'une telle macro ?

> > Merci- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
MichD
Le #24169391
Si tu fais plusieurs sélections sur la même ligne, mais non adjacentes, tu peux utiliser ceci :

'-----------------------------------------
Sub test()
Dim DerLig As Long, Adr As String, Are As Range
With Worksheets("Feuil1") 'Nom feuille à adapter
's'assurer que la sélection est dans ladite feuille
If Selection.Parent.Name = .Name Then
's'assurer que la sélection représente une plage de cellule
If TypeName(Selection) = "Range" Then
DerLig = .Range("A:A").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
For Each are In Selection.Areas
Adr = are.Rows(1).Address
.Range(Adr).Resize(DerLig - 1).FillDown
Next
End If
End If
End With
End Sub
'-----------------------------------------



MichD
------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


Ben en fait elle me dit
- Parfois il faut copier la semaine (soit de la colonne G à L)
- Parfois c'est juste une journée (soit une colonne)
- Parfois c'est un moi entier (soit de la colonne BN à CR)

L'étendue de la copie doit être l'aplomb des cellules sélectionnées
par exemple Sélection : G5:L5 => G5 Doit être copié sur G6:G143; H5
=> Sur H6:H143; I5 SUR I6:I143 et ainsi de suite...




On 16 jan, 17:48, "MichD"
Donne un exemple concret de ce que tu entends par "zone sélectionnée" et
ce que devrait être la recopie.

MichD
------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


1er Feedback

ça marche (qui en aurait douté)
maintenant, comment pourrait on modifier cette procédure pour que la
copie ne se fasse que sur les cellules sélectionnées..

càd qu'elle puisse copier 1 jour, 1 semaine, 1 mois selon la zone
qu'elle a sélectionné avant de cliquer sur le bouton ?

Merci

On 16 jan, 16:48, "Fredo(67)"


> Merci beaucoup

> je vais tester ça de suite...

> On 16 jan, 16:44, "MichD"
> > Bonjour,

> > A ) Tu remplis la première ligne soit avec des formules ou des données de ton tableau de la colonne G à la colonne NF

> > B ) et pour recopier cette ligne sur l'ensemble des lignes du tableau, tu affectes cette macro à un bouton dans la
> > feuille.

> > C ) Tu adaptes le nom de la feuille dans la procédure.

> > '-----------------------------------
> > Sub test1()
> > Dim DerLig As Long
> > With Worksheets("Feuil1") 'Nom feuille à adapter
> > DerLig = .Range("G:NF").Find(What:="*", _
> > LookIn:=xlFormulas, _
> > SearchOrder:=xlByRows, _
> > SearchDirection:=xlPrevious).Row
> > .Range("G5:Nf" & DerLig).FillDown
> > End With
> > End Sub
> > '-----------------------------------

> > MichD
> > ------------------------------------------
> > "Fredo(67)" a écrit dans le message de groupe de discussion :
> >

> > Bonjour,

> > j'ai un tableau qui représente la liste des salariés de mon
> > entreprise.

> > Cette liste s'étend de A1 à NF150
> > En A les matricules, en B les noms, en C les prénoms, de D à NF les
> > jours de l'année
> > Les lignes 1 à 4 sont les en-têtes des colonnes
> > En regard de chaque ouvrier le nombre d'heures effectuée pour chaque
> > jour.

> > Ce que je voudrais, pour faciliter la saisie de mon opératrice c'est,
> > par macro,
> > recopier la saisie de la semaine sur l'ensemble des ouvriers.

> > Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
> > Si la semaine est "standard" alors Clic sur un bouton => et recopie de
> > ces valeur de la ligne 6 à la ligne 150.

> > De plus, il se peut que le nombre de ligne varie en fonction des
> > départs et des arrivées dans l'entreprise, d'où une variation de la
> > position de la dernière ligne.

> > J'avais pensé noter cette formule dans toutes les cellules de mon
> > tableau
> > en G6 : =G5
> > ce qui aurai copié toutes les saisies automatiquement, mais je préfère
> > qu'il y ait une intervention manuelle.

> > Quel pourrait être le code d'une telle macro ?

> > Merci- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Fredo(67)
Le #24173281
Bonjour,

Et bien un grand merci à toi MichD
cela correspond parfaitement à ce que nous désirions.

Merci encore



On 16 jan, 20:37, "MichD"
Si tu fais plusieurs sélections sur la même ligne, mais non adjacente s, tu peux utiliser ceci :

'-----------------------------------------
Sub test()
Dim DerLig As Long, Adr As String, Are As Range
With Worksheets("Feuil1") 'Nom feuille à adapter
    's'assurer que la sélection est dans ladite feuille
    If Selection.Parent.Name = .Name Then
        's'assurer que la sélection représente une plage de c ellule
        If TypeName(Selection) = "Range" Then
            DerLig = .Range("A:A").Find(What:="*", _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious).Ro w
            For Each are In Selection.Areas
                Adr = are.Rows(1).Address
                .Range(Adr).Resize(DerLig - 1).FillDown
            Next
        End If
    End If
End With
End Sub
'-----------------------------------------

MichD
------------------------------------------
"Fredo(67)"  a écrit dans le message de groupe de discussion :


Ben en fait elle me dit
- Parfois il faut copier la semaine (soit de la colonne G à L)
- Parfois c'est juste une journée (soit une colonne)
- Parfois c'est un moi entier (soit de la colonne BN à CR)

L'étendue de la copie doit être l'aplomb des cellules sélectionné es
par exemple Sélection : G5:L5  => G5 Doit être copié sur G6:G14 3; H5
=> Sur H6:H143; I5 SUR I6:I143 et ainsi de suite...

On 16 jan, 17:48, "MichD"


> Donne un exemple concret de ce que tu entends par "zone sélectionné e" et
> ce que devrait être la recopie.

> MichD
> ------------------------------------------
> "Fredo(67)"  a écrit dans le message de groupe de discussion :
>

> 1er Feedback

> ça marche (qui en aurait douté)
> maintenant, comment pourrait on modifier cette procédure pour que la
> copie ne se fasse que sur les cellules sélectionnées..

> càd qu'elle puisse copier 1 jour, 1 semaine, 1 mois selon la zone
> qu'elle a sélectionné avant de cliquer sur le bouton ?

> Merci

> On 16 jan, 16:48, "Fredo(67)"
> > Merci beaucoup

> > je vais tester ça de suite...

> > On 16 jan, 16:44, "MichD"
> > > Bonjour,

> > > A ) Tu remplis la première ligne soit avec des formules ou des do nnées de ton tableau de la colonne G à la colonne NF

> > > B ) et pour recopier cette ligne sur l'ensemble des lignes du table au, tu affectes cette macro à un bouton dans la
> > > feuille.

> > > C ) Tu adaptes le nom de la feuille dans la procédure.

> > > '-----------------------------------
> > > Sub test1()
> > > Dim DerLig As Long
> > > With Worksheets("Feuil1") 'Nom feuille à adapter
> > >     DerLig = .Range("G:NF").Find(What:="*", _
> > >                     LookIn:=xlFormulas, _
> > >                     SearchOrder:=xlByRows, _
> > >                     SearchDirection:=xlPrevio us).Row
> > >     .Range("G5:Nf" & DerLig).FillDown
> > > End With
> > > End Sub
> > > '-----------------------------------

> > > MichD
> > > ------------------------------------------
> > > "Fredo(67)"  a écrit dans le message de groupe de discussion :
> > > .

> > > Bonjour,

> > > j'ai un tableau qui représente la liste des salariés de mon
> > > entreprise.

> > > Cette liste s'étend de A1 à NF150
> > > En A les matricules, en B les noms, en C les prénoms, de D à NF les
> > > jours de l'année
> > > Les lignes 1 à 4 sont les en-têtes des colonnes
> > > En regard de chaque ouvrier le nombre d'heures effectuée pour cha que
> > > jour.

> > > Ce que je voudrais, pour faciliter la saisie de mon opératrice c' est,
> > > par macro,
> > > recopier la saisie de la semaine sur l'ensemble des ouvriers.

> > > Par exemple valeur G5=8; H5+8; I5+8; J5=8; K5=7
> > > Si la semaine est "standard" alors Clic sur un bouton => et recop ie de
> > > ces valeur de la ligne 6 à la ligne 150.

> > > De plus, il se peut que le nombre de ligne varie en fonction des
> > > départs et des arrivées dans l'entreprise, d'où une variation de la
> > > position de la dernière ligne.

> > > J'avais pensé noter cette formule dans toutes les cellules de mon
> > > tableau
> > > en G6 : =G5
> > > ce qui aurai copié toutes les saisies automatiquement, mais je pr éfère
> > > qu'il y ait une intervention manuelle.

> > > Quel pourrait être le code d'une telle macro ?

> > > Merci- Masquer le texte des messages précédents -

> > - Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Publicité
Poster une réponse
Anonyme