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

Petite modif sur code vba

16 réponses
Avatar
PLG
Bonjour à tous
Je joins une partie de mon code, tel quel, il copie les cellules C3 et D:N
sur differentes feuilles ( j'en ai 46 ). Mon problème est que tout est copié,
hors je souhaiterais que seules soient copiées les valeurs des cellules.
Merci d'avance à mon sauveur.

.Range("C3").Copy Worksheets("2").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D5:N5").Copy Worksheets("2").Range("D65000").End(xlUp).Offset(1,
0)
.Range("C3").Copy Worksheets("3").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D6:N6").Copy Worksheets("3").Range("D65000").End(xlUp).Offset(1,
0)
.Range("C3").Copy Worksheets("4").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D7:N7").Copy Worksheets("4").Range("D65000").End(xlUp).Offset(1,
0)

10 réponses

1 2
Avatar
JPMonnier
Bonjour,
pour ne copier que les valeurs d'une plage, utilise ceci
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
--
Cordialement

"PLG" a écrit dans le message de
news:
Bonjour à tous
Je joins une partie de mon code, tel quel, il copie les cellules C3 et D:N
sur differentes feuilles ( j'en ai 46 ). Mon problème est que tout est
copié,
hors je souhaiterais que seules soient copiées les valeurs des cellules.
Merci d'avance à mon sauveur.

.Range("C3").Copy Worksheets("2").Range("A65000").End(xlUp).Offset(1, 0)
.Range("D5:N5").Copy
Worksheets("2").Range("D65000").End(xlUp).Offset(1,
0)
.Range("C3").Copy Worksheets("3").Range("A65000").End(xlUp).Offset(1,
0)
.Range("D6:N6").Copy
Worksheets("3").Range("D65000").End(xlUp).Offset(1,
0)
.Range("C3").Copy Worksheets("4").Range("A65000").End(xlUp).Offset(1,
0)
.Range("D7:N7").Copy
Worksheets("4").Range("D65000").End(xlUp).Offset(1,
0)


Avatar
PLG
Bonjour JP

Merci de ta réactivité bien matinale.... (O:
Par contre où dois l'insérer exactement dans mon code.
Sachant que j'ai 46 fois les deux lignes pour chaque feuille, je suppose que
je devrais l'insérer 46 fois...?

"JPMonnier" a écrit :

Bonjour,
pour ne copier que les valeurs d'une plage, utilise ceci
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
--
Cordialement

"PLG" a écrit dans le message de
news:
> Bonjour à tous
> Je joins une partie de mon code, tel quel, il copie les cellules C3 et D:N
> sur differentes feuilles ( j'en ai 46 ). Mon problème est que tout est
> copié,
> hors je souhaiterais que seules soient copiées les valeurs des cellules.
> Merci d'avance à mon sauveur.
>
> .Range("C3").Copy Worksheets("2").Range("A65000").End(xlUp).Offset(1, 0)
> .Range("D5:N5").Copy
> Worksheets("2").Range("D65000").End(xlUp).Offset(1,
> 0)
> .Range("C3").Copy Worksheets("3").Range("A65000").End(xlUp).Offset(1,
> 0)
> .Range("D6:N6").Copy
> Worksheets("3").Range("D65000").End(xlUp).Offset(1,
> 0)
> .Range("C3").Copy Worksheets("4").Range("A65000").End(xlUp).Offset(1,
> 0)
> .Range("D7:N7").Copy
> Worksheets("4").Range("D65000").End(xlUp).Offset(1,
> 0)




Avatar
JPMonnier
En exécutant ce code, ti devrais copier sur tes 46 feuilles
worksheets(1) étant ta feuille d'origine
n doit te conter le nombre de feuilles où copier (46) dans ton cas

Sub Macro1()
n = Worksheets.Count
For x = 2 To n
Worksheets(1).Range("C3").Copy
Worksheets(x).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Worksheets(1).Range("D5:N5").Copy
Worksheets(x).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Next
End Sub
--
Cordialement


"PLG" a écrit dans le message de
news:
Bonjour JP

Merci de ta réactivité bien matinale.... (O:
Par contre où dois l'insérer exactement dans mon code.
Sachant que j'ai 46 fois les deux lignes pour chaque feuille, je suppose
que
je devrais l'insérer 46 fois...?

"JPMonnier" a écrit :

Bonjour,
pour ne copier que les valeurs d'une plage, utilise ceci
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
--
Cordialement

"PLG" a écrit dans le message de
news:
> Bonjour à tous
> Je joins une partie de mon code, tel quel, il copie les cellules C3 et
> D:N
> sur differentes feuilles ( j'en ai 46 ). Mon problème est que tout est
> copié,
> hors je souhaiterais que seules soient copiées les valeurs des
> cellules.
> Merci d'avance à mon sauveur.
>
> .Range("C3").Copy Worksheets("2").Range("A65000").End(xlUp).Offset(1,
> 0)
> .Range("D5:N5").Copy
> Worksheets("2").Range("D65000").End(xlUp).Offset(1,
> 0)
> .Range("C3").Copy
> Worksheets("3").Range("A65000").End(xlUp).Offset(1,
> 0)
> .Range("D6:N6").Copy
> Worksheets("3").Range("D65000").End(xlUp).Offset(1,
> 0)
> .Range("C3").Copy
> Worksheets("4").Range("A65000").End(xlUp).Offset(1,
> 0)
> .Range("D7:N7").Copy
> Worksheets("4").Range("D65000").End(xlUp).Offset(1,
> 0)






Avatar
PLG
Merci JP

Mais j'ai comme un doute...
Pour chaque feuille, les valeurs à copier changent.
D5:N5 pour la feuille 1
D6:N6 pour la feuille 2
D7:N7 pour la feuille 3... etc !

Je n'ai pas l'impression que ton code en tienne compte... ou alors je pipe
rien, ce qui ma fois n'est pas impossible...!!

"JPMonnier" a écrit :

En exécutant ce code, ti devrais copier sur tes 46 feuilles
worksheets(1) étant ta feuille d'origine
n doit te conter le nombre de feuilles où copier (46) dans ton cas

Sub Macro1()
n = Worksheets.Count
For x = 2 To n
Worksheets(1).Range("C3").Copy
Worksheets(x).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Worksheets(1).Range("D5:N5").Copy
Worksheets(x).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Next
End Sub
--
Cordialement


"PLG" a écrit dans le message de
news:
> Bonjour JP
>
> Merci de ta réactivité bien matinale.... (O:
> Par contre où dois l'insérer exactement dans mon code.
> Sachant que j'ai 46 fois les deux lignes pour chaque feuille, je suppose
> que
> je devrais l'insérer 46 fois...?
>
> "JPMonnier" a écrit :
>
>> Bonjour,
>> pour ne copier que les valeurs d'une plage, utilise ceci
>> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
>> False, Transpose:úlse
>> --
>> Cordialement
>>
>> "PLG" a écrit dans le message de
>> news:
>> > Bonjour à tous
>> > Je joins une partie de mon code, tel quel, il copie les cellules C3 et
>> > D:N
>> > sur differentes feuilles ( j'en ai 46 ). Mon problème est que tout est
>> > copié,
>> > hors je souhaiterais que seules soient copiées les valeurs des
>> > cellules.
>> > Merci d'avance à mon sauveur.
>> >
>> > .Range("C3").Copy Worksheets("2").Range("A65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("D5:N5").Copy
>> > Worksheets("2").Range("D65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("C3").Copy
>> > Worksheets("3").Range("A65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("D6:N6").Copy
>> > Worksheets("3").Range("D65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("C3").Copy
>> > Worksheets("4").Range("A65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("D7:N7").Copy
>> > Worksheets("4").Range("D65000").End(xlUp).Offset(1,
>> > 0)
>>
>>




Avatar
JPMonnier
Tu as bien pipé
Mon code copie toujours D5:N5
Si à chaque fois D5:N5 devient D5+1:N5+1, on peut adapter
au lieu de D5: N5, utilise la syntaxe
Range(Cells(5,3+z),cells(5,13+z))
initialise z à 0 avant le For
z que tu incrémentes dans ta boucle a z=z+1
--
Cordialement

"PLG" a écrit dans le message de
news:
Merci JP

Mais j'ai comme un doute...
Pour chaque feuille, les valeurs à copier changent.
D5:N5 pour la feuille 1
D6:N6 pour la feuille 2
D7:N7 pour la feuille 3... etc !

Je n'ai pas l'impression que ton code en tienne compte... ou alors je pipe
rien, ce qui ma fois n'est pas impossible...!!

"JPMonnier" a écrit :

En exécutant ce code, ti devrais copier sur tes 46 feuilles
worksheets(1) étant ta feuille d'origine
n doit te conter le nombre de feuilles où copier (46) dans ton cas

Sub Macro1()
n = Worksheets.Count
For x = 2 To n
Worksheets(1).Range("C3").Copy
Worksheets(x).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Worksheets(1).Range("D5:N5").Copy
Worksheets(x).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Next
End Sub
--
Cordialement


"PLG" a écrit dans le message de
news:
> Bonjour JP
>
> Merci de ta réactivité bien matinale.... (O:
> Par contre où dois l'insérer exactement dans mon code.
> Sachant que j'ai 46 fois les deux lignes pour chaque feuille, je
> suppose
> que
> je devrais l'insérer 46 fois...?
>
> "JPMonnier" a écrit :
>
>> Bonjour,
>> pour ne copier que les valeurs d'une plage, utilise ceci
>> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
>> SkipBlanks:= _
>> False, Transpose:úlse
>> --
>> Cordialement
>>
>> "PLG" a écrit dans le message de
>> news:
>> > Bonjour à tous
>> > Je joins une partie de mon code, tel quel, il copie les cellules C3
>> > et
>> > D:N
>> > sur differentes feuilles ( j'en ai 46 ). Mon problème est que tout
>> > est
>> > copié,
>> > hors je souhaiterais que seules soient copiées les valeurs des
>> > cellules.
>> > Merci d'avance à mon sauveur.
>> >
>> > .Range("C3").Copy
>> > Worksheets("2").Range("A65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("D5:N5").Copy
>> > Worksheets("2").Range("D65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("C3").Copy
>> > Worksheets("3").Range("A65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("D6:N6").Copy
>> > Worksheets("3").Range("D65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("C3").Copy
>> > Worksheets("4").Range("A65000").End(xlUp).Offset(1,
>> > 0)
>> > .Range("D7:N7").Copy
>> > Worksheets("4").Range("D65000").End(xlUp).Offset(1,
>> > 0)
>>
>>






Avatar
PLG
Youpi.... donc si j'ai bien tout compris..!?
Je plonge l'équipage dans un bain moussant
J'en extrait le capitaine, que je pèse et ensuite si tout se passe bien...
J'obtiens la longeur du navire...!?

Bon.. tu auras compris que je gobe rien à ce que tu viens de m'expliquer....
Je suis mauvais en vba ( quasi nul !!! )
Aurais tu la bonté Gentil JP, de me pondre le code style "tout fait"...
prêt à l'emploi quoi....!
Je t'en remercie tout en m'excusant pour mon ignorance....


"JPMonnier" a écrit :

Tu as bien pipé
Mon code copie toujours D5:N5
Si à chaque fois D5:N5 devient D5+1:N5+1, on peut adapter
au lieu de D5: N5, utilise la syntaxe
Range(Cells(5,3+z),cells(5,13+z))
initialise z à 0 avant le For
z que tu incrémentes dans ta boucle a z=z+1
--
Cordialement

"PLG" a écrit dans le message de
news:
> Merci JP
>
> Mais j'ai comme un doute...
> Pour chaque feuille, les valeurs à copier changent.
> D5:N5 pour la feuille 1
> D6:N6 pour la feuille 2
> D7:N7 pour la feuille 3... etc !
>
> Je n'ai pas l'impression que ton code en tienne compte... ou alors je pipe
> rien, ce qui ma fois n'est pas impossible...!!
>
> "JPMonnier" a écrit :
>
>> En exécutant ce code, ti devrais copier sur tes 46 feuilles
>> worksheets(1) étant ta feuille d'origine
>> n doit te conter le nombre de feuilles où copier (46) dans ton cas
>>
>> Sub Macro1()
>> n = Worksheets.Count
>> For x = 2 To n
>> Worksheets(1).Range("C3").Copy
>> Worksheets(x).Activate
>> Range("A65000").End(xlUp).Offset(1, 0).Select
>> ActiveCell.PasteSpecial Paste:=xlValues
>> Application.CutCopyMode = False
>> Worksheets(1).Range("D5:N5").Copy
>> Worksheets(x).Activate
>> Range("A65000").End(xlUp).Offset(1, 0).Select
>> ActiveCell.PasteSpecial Paste:=xlValues
>> Application.CutCopyMode = False
>> Next
>> End Sub
>> --
>> Cordialement
>>
>>
>> "PLG" a écrit dans le message de
>> news:
>> > Bonjour JP
>> >
>> > Merci de ta réactivité bien matinale.... (O:
>> > Par contre où dois l'insérer exactement dans mon code.
>> > Sachant que j'ai 46 fois les deux lignes pour chaque feuille, je
>> > suppose
>> > que
>> > je devrais l'insérer 46 fois...?
>> >
>> > "JPMonnier" a écrit :
>> >
>> >> Bonjour,
>> >> pour ne copier que les valeurs d'une plage, utilise ceci
>> >> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
>> >> SkipBlanks:= _
>> >> False, Transpose:úlse
>> >> --
>> >> Cordialement
>> >>
>> >> "PLG" a écrit dans le message de
>> >> news:
>> >> > Bonjour à tous
>> >> > Je joins une partie de mon code, tel quel, il copie les cellules C3
>> >> > et
>> >> > D:N
>> >> > sur differentes feuilles ( j'en ai 46 ). Mon problème est que tout
>> >> > est
>> >> > copié,
>> >> > hors je souhaiterais que seules soient copiées les valeurs des
>> >> > cellules.
>> >> > Merci d'avance à mon sauveur.
>> >> >
>> >> > .Range("C3").Copy
>> >> > Worksheets("2").Range("A65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("D5:N5").Copy
>> >> > Worksheets("2").Range("D65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("C3").Copy
>> >> > Worksheets("3").Range("A65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("D6:N6").Copy
>> >> > Worksheets("3").Range("D65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("C3").Copy
>> >> > Worksheets("4").Range("A65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("D7:N7").Copy
>> >> > Worksheets("4").Range("D65000").End(xlUp).Offset(1,
>> >> > 0)
>> >>
>> >>
>>
>>




Avatar
JPMonnier
Suis de retour
Essaie cette proc je ne sais pas si c'est ce que tu veux
Sélectionne vba puis réduit la fenêtre pour voir Excel et vba en même temps
A tester en mode pas à pas en vba pour contrôler ce qui se passe
Pas à pas = lancement de la macro par touche F8
Sub Macro1()
Dim X, Z, N As Integer
Application.ScreenUpdatingúlse
Z = 0
N = Worksheets.Count
For X = 2 To N
Worksheets(1).Range("C3").Copy
Worksheets(X).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Sheets(1).Activate
Range(Cells(5 + Z, 4), Cells(5 + Z, 13)).Copy
Worksheets(X).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Z = Z + 1
Next
End Sub
--
Cordialement

"PLG" a écrit dans le message de
news:
Youpi.... donc si j'ai bien tout compris..!?
Je plonge l'équipage dans un bain moussant
J'en extrait le capitaine, que je pèse et ensuite si tout se passe bien...
J'obtiens la longeur du navire...!?

Bon.. tu auras compris que je gobe rien à ce que tu viens de
m'expliquer....
Je suis mauvais en vba ( quasi nul !!! )
Aurais tu la bonté Gentil JP, de me pondre le code style "tout fait"...
prêt à l'emploi quoi....!
Je t'en remercie tout en m'excusant pour mon ignorance....


"JPMonnier" a écrit :

Tu as bien pipé
Mon code copie toujours D5:N5
Si à chaque fois D5:N5 devient D5+1:N5+1, on peut adapter
au lieu de D5: N5, utilise la syntaxe
Range(Cells(5,3+z),cells(5,13+z))
initialise z à 0 avant le For
z que tu incrémentes dans ta boucle a z=z+1
--
Cordialement

"PLG" a écrit dans le message de
news:
> Merci JP
>
> Mais j'ai comme un doute...
> Pour chaque feuille, les valeurs à copier changent.
> D5:N5 pour la feuille 1
> D6:N6 pour la feuille 2
> D7:N7 pour la feuille 3... etc !
>
> Je n'ai pas l'impression que ton code en tienne compte... ou alors je
> pipe
> rien, ce qui ma fois n'est pas impossible...!!
>
> "JPMonnier" a écrit :
>
>> En exécutant ce code, ti devrais copier sur tes 46 feuilles
>> worksheets(1) étant ta feuille d'origine
>> n doit te conter le nombre de feuilles où copier (46) dans ton cas
>>
>> Sub Macro1()
>> n = Worksheets.Count
>> For x = 2 To n
>> Worksheets(1).Range("C3").Copy
>> Worksheets(x).Activate
>> Range("A65000").End(xlUp).Offset(1, 0).Select
>> ActiveCell.PasteSpecial Paste:=xlValues
>> Application.CutCopyMode = False
>> Worksheets(1).Range("D5:N5").Copy
>> Worksheets(x).Activate
>> Range("A65000").End(xlUp).Offset(1, 0).Select
>> ActiveCell.PasteSpecial Paste:=xlValues
>> Application.CutCopyMode = False
>> Next
>> End Sub
>> --
>> Cordialement
>>
>>
>> "PLG" a écrit dans le message de
>> news:
>> > Bonjour JP
>> >
>> > Merci de ta réactivité bien matinale.... (O:
>> > Par contre où dois l'insérer exactement dans mon code.
>> > Sachant que j'ai 46 fois les deux lignes pour chaque feuille, je
>> > suppose
>> > que
>> > je devrais l'insérer 46 fois...?
>> >
>> > "JPMonnier" a écrit :
>> >
>> >> Bonjour,
>> >> pour ne copier que les valeurs d'une plage, utilise ceci
>> >> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
>> >> SkipBlanks:= _
>> >> False, Transpose:úlse
>> >> --
>> >> Cordialement
>> >>
>> >> "PLG" a écrit dans le message de
>> >> news:
>> >> > Bonjour à tous
>> >> > Je joins une partie de mon code, tel quel, il copie les cellules
>> >> > C3
>> >> > et
>> >> > D:N
>> >> > sur differentes feuilles ( j'en ai 46 ). Mon problème est que
>> >> > tout
>> >> > est
>> >> > copié,
>> >> > hors je souhaiterais que seules soient copiées les valeurs des
>> >> > cellules.
>> >> > Merci d'avance à mon sauveur.
>> >> >
>> >> > .Range("C3").Copy
>> >> > Worksheets("2").Range("A65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("D5:N5").Copy
>> >> > Worksheets("2").Range("D65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("C3").Copy
>> >> > Worksheets("3").Range("A65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("D6:N6").Copy
>> >> > Worksheets("3").Range("D65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("C3").Copy
>> >> > Worksheets("4").Range("A65000").End(xlUp).Offset(1,
>> >> > 0)
>> >> > .Range("D7:N7").Copy
>> >> > Worksheets("4").Range("D65000").End(xlUp).Offset(1,
>> >> > 0)
>> >>
>> >>
>>
>>






Avatar
PLG
Bah.... j'ai des soucis pour récupérer les réponses aujourd'hui !!!
Bon... suis donc de retour aussi !
J'ai testé ton code.... y'a malheur à l'arrivée...!
En fait on est parti en live... et toi tu travailles pas dans les meilleures
conditions !!
Je m'explique, et par la même on va faire plus simple...!
Je sais que tu vas y arriver.... si je t'explique correctement les choses !

On ne va faire qu'avec la cellule C3 ( cela me suffit )
Bon j'ai ce qui suit pour les feuilles 1,2... et ça va jusqu'à 46 ( ça
pourra aller plus loin )

.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)

La chose que tu dois savoir est que cette foutue cellule C3 à copier en col
A de chacune des feuilles se trouve sur une feuille qui s'appelle
"Saisie".... vouais ça tu savais pas !

With Worksheets("Saisie")
Je suis désolé et confus !!

Donc je souhaite toujours la même chose ( simplifié )
Copier la cel C3 ( de "Saisie"... n'oublions pas... (O:}...) sur la dernière
cellule vide en Col A des feuilles 1 à 46, mais ne copier que la valeur !

Je viens de me relire... je crois que j'ai été clair...
( je l'ai fait lire à la petite voisine, elle a tout compris.... elle a 2
ans en plus ...!)
Bon si tu passes me voir... tu me fais un petit code... merci JP
Avatar
PLG
Bon j'ai pas compris, je t'avais répondu et j'ai une page blanche...!
peut être parce que j'avais viré l'historique..!

Bon ta procédure ne fonctionne pas mais c'est normal et de ma faute.
Je vais te demander plus simple et surtout te donner les éléments
necessaires...!
j'avais omis de te dire que les cellules à copier sont sur une feuille qui
se nomme " Saisie ".... petit oubli, grandes causes ...!!

Donc j'ai :
With Worksheets("Saisie")
.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)
et ce jusqu'à la feuille 46 ( je peux en avoir plus ).
Je souhaiterais donc copier cette foutue cell C3 ( ça me suffit ) sur la
dernière cellule vide en col A des 46 feuilles, mais n'en copier que la
valeur.

Bon, je crois que c'est pas trop mal... je sais que tu peux le faire JP (O:}
Je t'en remercie d'avance et surtout m'excuse d'avoir été si peu clair.
En fait je pensais que c'était plus simple... et c'est parti en live.


"JPMonnier" a écrit :

Suis de retour
Essaie cette proc je ne sais pas si c'est ce que tu veux
Sélectionne vba puis réduit la fenêtre pour voir Excel et vba en même temps
A tester en mode pas à pas en vba pour contrôler ce qui se passe
Pas à pas = lancement de la macro par touche F8
Sub Macro1()
Dim X, Z, N As Integer
Application.ScreenUpdatingúlse
Z = 0
N = Worksheets.Count
For X = 2 To N
Worksheets(1).Range("C3").Copy
Worksheets(X).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Sheets(1).Activate
Range(Cells(5 + Z, 4), Cells(5 + Z, 13)).Copy
Worksheets(X).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Z = Z + 1
Next
End Sub
--
Cordialement

"PLG" a écrit dans le message de
news:
> Youpi.... donc si j'ai bien tout compris..!?
> Je plonge l'équipage dans un bain moussant
> J'en extrait le capitaine, que je pèse et ensuite si tout se passe bien...
> J'obtiens la longeur du navire...!?
>
> Bon.. tu auras compris que je gobe rien à ce que tu viens de
> m'expliquer....
> Je suis mauvais en vba ( quasi nul !!! )
> Aurais tu la bonté Gentil JP, de me pondre le code style "tout fait"...
> prêt à l'emploi quoi....!
> Je t'en remercie tout en m'excusant pour mon ignorance....
>
>
> "JPMonnier" a écrit :
>
>> Tu as bien pipé
>> Mon code copie toujours D5:N5
>> Si à chaque fois D5:N5 devient D5+1:N5+1, on peut adapter
>> au lieu de D5: N5, utilise la syntaxe
>> Range(Cells(5,3+z),cells(5,13+z))
>> initialise z à 0 avant le For
>> z que tu incrémentes dans ta boucle a z=z+1
>> --
>> Cordialement
>>
>> "PLG" a écrit dans le message de
>> news:
>> > Merci JP
>> >
>> > Mais j'ai comme un doute...
>> > Pour chaque feuille, les valeurs à copier changent.
>> > D5:N5 pour la feuille 1
>> > D6:N6 pour la feuille 2
>> > D7:N7 pour la feuille 3... etc !
>> >
>> > Je n'ai pas l'impression que ton code en tienne compte... ou alors je
>> > pipe
>> > rien, ce qui ma fois n'est pas impossible...!!
>> >
>> > "JPMonnier" a écrit :
>> >
>> >> En exécutant ce code, ti devrais copier sur tes 46 feuilles
>> >> worksheets(1) étant ta feuille d'origine
>> >> n doit te conter le nombre de feuilles où copier (46) dans ton cas
>> >>
>> >> Sub Macro1()
>> >> n = Worksheets.Count
>> >> For x = 2 To n
>> >> Worksheets(1).Range("C3").Copy
>> >> Worksheets(x).Activate
>> >> Range("A65000").End(xlUp).Offset(1, 0).Select
>> >> ActiveCell.PasteSpecial Paste:=xlValues
>> >> Application.CutCopyMode = False
>> >> Worksheets(1).Range("D5:N5").Copy
>> >> Worksheets(x).Activate
>> >> Range("A65000").End(xlUp).Offset(1, 0).Select
>> >> ActiveCell.PasteSpecial Paste:=xlValues
>> >> Application.CutCopyMode = False
>> >> Next
>> >> End Sub
>> >> --
>> >> Cordialement
>> >>
>> >>
>> >> "PLG" a écrit dans le message de
>> >> news:
>> >> > Bonjour JP
>> >> >
>> >> > Merci de ta réactivité bien matinale.... (O:
>> >> > Par contre où dois l'insérer exactement dans mon code.
>> >> > Sachant que j'ai 46 fois les deux lignes pour chaque feuille, je
>> >> > suppose
>> >> > que
>> >> > je devrais l'insérer 46 fois...?
>> >> >
>> >> > "JPMonnier" a écrit :
>> >> >
>> >> >> Bonjour,
>> >> >> pour ne copier que les valeurs d'une plage, utilise ceci
>> >> >> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
>> >> >> SkipBlanks:= _
>> >> >> False, Transpose:úlse
>> >> >> --
>> >> >> Cordialement
>> >> >>
>> >> >> "PLG" a écrit dans le message de
>> >> >> news:
>> >> >> > Bonjour à tous
>> >> >> > Je joins une partie de mon code, tel quel, il copie les cellules
>> >> >> > C3
>> >> >> > et
>> >> >> > D:N
>> >> >> > sur differentes feuilles ( j'en ai 46 ). Mon problème est que
>> >> >> > tout
>> >> >> > est
>> >> >> > copié,
>> >> >> > hors je souhaiterais que seules soient copiées les valeurs des
>> >> >> > cellules.
>> >> >> > Merci d'avance à mon sauveur.
>> >> >> >
>> >> >> > .Range("C3").Copy
>> >> >> > Worksheets("2").Range("A65000").End(xlUp).Offset(1,
>> >> >> > 0)
>> >> >> > .Range("D5:N5").Copy
>> >> >> > Worksheets("2").Range("D65000").End(xlUp).Offset(1,
>> >> >> > 0)
>> >> >> > .Range("C3").Copy
>> >> >> > Worksheets("3").Range("A65000").End(xlUp).Offset(1,
>> >> >> > 0)
>> >> >> > .Range("D6:N6").Copy
>> >> >> > Worksheets("3").Range("D65000").End(xlUp).Offset(1,
>> >> >> > 0)
>> >> >> > .Range("C3").Copy
>> >> >> > Worksheets("4").Range("A65000").End(xlUp).Offset(1,
>> >> >> > 0)
>> >> >> > .Range("D7:N7").Copy
>> >> >> > Worksheets("4").Range("D65000").End(xlUp).Offset(1,
>> >> >> > 0)
>> >> >>
>> >> >>
>> >>
>> >>
>>
>>




Avatar
JPMonnier
Cette proc devrait faire l'affaire
elle copie bien lav aleur de Sheets("Saisie") dans tes feuilles de X à N
Ta Sheets("Saisie") doit être la feuille1
lance cette petite macro pour tester
Sub ControleNom()
N = Worksheets.Count
For X = 1 To N
If Worksheets(X).Name = "Saisie" Then
MsgBox Worksheets(X).Name & " est la feuille" & X
End If
Next
End Sub

puis lance celle-ci
Sub Macro1()
Dim X, N As Integer
Application.ScreenUpdating = False
N = Worksheets.Count
Worksheets("Saisie").Range("C3").Copy
For X = 2 To N
Worksheets(X).Activate
Range("A65000").End(xlUp).Offset(1, 0).Select
ActiveCell.PasteSpecial Paste:=xlValues
Next
End Sub
--
Cordialement


--
Cordialement

"PLG" a écrit dans le message de
news:
Bah.... j'ai des soucis pour récupérer les réponses aujourd'hui !!!
Bon... suis donc de retour aussi !
J'ai testé ton code.... y'a malheur à l'arrivée...!
En fait on est parti en live... et toi tu travailles pas dans les
meilleures
conditions !!
Je m'explique, et par la même on va faire plus simple...!
Je sais que tu vas y arriver.... si je t'explique correctement les choses
!

On ne va faire qu'avec la cellule C3 ( cela me suffit )
Bon j'ai ce qui suit pour les feuilles 1,2... et ça va jusqu'à 46 ( ça
pourra aller plus loin )

.Range("C3").Copy Worksheets("1").Range("A65000").End(xlUp).Offset(1, 0)

La chose que tu dois savoir est que cette foutue cellule C3 à copier en
col
A de chacune des feuilles se trouve sur une feuille qui s'appelle
"Saisie".... vouais ça tu savais pas !

With Worksheets("Saisie")
Je suis désolé et confus !!

Donc je souhaite toujours la même chose ( simplifié )
Copier la cel C3 ( de "Saisie"... n'oublions pas... (O:}...) sur la
dernière
cellule vide en Col A des feuilles 1 à 46, mais ne copier que la valeur !

Je viens de me relire... je crois que j'ai été clair...
( je l'ai fait lire à la petite voisine, elle a tout compris.... elle a 2
ans en plus ...!)
Bon si tu passes me voir... tu me fais un petit code... merci JP



1 2