GNT sans publicité, site mobile, fonctionnalitées exclusives...

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
Lire les 8 réponses

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
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 -
Publicité
Suivre les réponses
Poster une réponse
Anonyme