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

Améliorer la copie d’une ligne avec une sub en VBA

18 réponses
Avatar
Frasax
Je débute en VBA et je trouve ça très complexe, raison pour laquelle je fais
appelle à des connaisseurs afin de me donner un coup de pouce.
Voici le problème ; j’ai un classeur de 10 feuilles dont chacune contiennent
100 lignes.
Je dois reporter certaines lignes d’une feuille dans un brouillon sans
perdre les données de la feuille maître et sans que les lignes dans le
brouillon s’efface à chaque transfert . Cela peut être recopié dans le même
classeur, ou dans un autre classeur si cette solution existe « mais ça c’est
déjà pour des professionnelles avertis ».
J’ai trouvé une solution, mais pas pratique du tout.
Voici un bref aperçu pour 3 lignes.

Sub RecopieLigne1()
Sheets("Feuil2").Rows("150:150").Insert
Sheets("Feuil2").Range("a4:j4").Value = _
Sheets("Feuil1").Range("G5:P5").Value
End Sub
Sub RecopieLigne2()
Sheets("Feuil2").Rows("150:150").Insert
Sheets("Feuil2").Range("a5:j5").Value = _
Sheets("Feuil1").Range("G6:P6").Value
End Sub
Sub RecopieLigne3()
Sheets("Feuil2").Rows("150:150").Insert
Sheets("Feuil2").Range("a6:j6").Value = _
Sheets("Feuil1").Range("G7:P7").Value
End Sub

Ca fonctionne, le transfert ce fait, mais l’inconvénient c’est que si une
ligne doit être lue 2 fois il y a problème.
Merci d’avance à ceux qui peuvent me donner la solution.
Cordialement
Francis

8 réponses

1 2
Avatar
Frasax
Bonjour,
J'ai essayé d'envoyer mon fichier qui est assez lourd 1.56Mo et espère qu'il
arrive, du fait que je ne sais pas utiliser la boîte d'envoi avec le lien, il
faut m'avertir si la réception est impossible. Pour en venir à ce fichier,
j'ai dû le raccourcir, il pèse 4Mo. Un test partiel peut être fait dans les
onglets et un test complet dans l'onglet où est noté "Essayez ici test
compl.+GF+". Encore merci pour cette participation active et j'espère qu'une
solution peut être envisagée.
Bonne journée et A+
Francis


"Jacky" wrote:

re..
Plutôt ceci
'-------
Sub jj3()
Application.ScreenUpdating = False
derlg = Sheets("facturation").Range("a65536").End(3).Row + 1
For f = 1 To Worksheets.Count
If Sheets(f).Name <> "facturation" And Sheets(f).Name <> "table" Then
Sheets(f).[g5:p104].Copy
Sheets("facturation").Activate
Range("a" & derlg).PasteSpecial Paste:=xlPasteValues
derlg = derlg + 100
End If
Next
End Sub
'----------
Bonne nuit.
JJ





Avatar
Jacky
Re..
Utilisation de Cjoint
Un clique sur "Parcourir..."
Chercher le fichier Zipper (500ko max.)
Un clique sur "Créer le lien Cjoint"
Le lien est copié automatiquement
Et un "coller" dans un message ici.

Le dernier code ne fait pas ??
--
Salutations
JJ

"Frasax" a écrit dans le message de news:

Bonjour,
J'ai essayé d'envoyer mon fichier qui est assez lourd 1.56Mo et espère
qu'il
arrive, du fait que je ne sais pas utiliser la boîte d'envoi avec le lien,
il
faut m'avertir si la réception est impossible. Pour en venir à ce fichier,
j'ai dû le raccourcir, il pèse 4Mo. Un test partiel peut être fait dans
les
onglets et un test complet dans l'onglet où est noté "Essayez ici test
compl.+GF+". Encore merci pour cette participation active et j'espère
qu'une
solution peut être envisagée.
Bonne journée et A+
Francis


"Jacky" wrote:

re..
Plutôt ceci
'-------
Sub jj3()
Application.ScreenUpdating = False
derlg = Sheets("facturation").Range("a65536").End(3).Row + 1
For f = 1 To Worksheets.Count
If Sheets(f).Name <> "facturation" And Sheets(f).Name <> "table" Then
Sheets(f).[g5:p104].Copy
Sheets("facturation").Activate
Range("a" & derlg).PasteSpecial Paste:=xlPasteValues
derlg = derlg + 100
End If
Next
End Sub
'----------
Bonne nuit.
JJ







Avatar
Frasax
Voici le lien, j'espère que ça fonctionnera. Bonne réception et cordiales
salutations
Francis
http://cjoint.com/?jumVlLN7ag

"Jacky" wrote:

Re..
Utilisation de Cjoint
Un clique sur "Parcourir..."
Chercher le fichier Zipper (500ko max.)
Un clique sur "Créer le lien Cjoint"
Le lien est copié automatiquement
Et un "coller" dans un message ici.

Le dernier code ne fait pas ??
--
Salutations
JJ

"Frasax" a écrit dans le message de news:

Bonjour,
J'ai essayé d'envoyer mon fichier qui est assez lourd 1.56Mo et espère
qu'il
arrive, du fait que je ne sais pas utiliser la boîte d'envoi avec le lien,
il
faut m'avertir si la réception est impossible. Pour en venir à ce fichier,
j'ai dû le raccourcir, il pèse 4Mo. Un test partiel peut être fait dans
les
onglets et un test complet dans l'onglet où est noté "Essayez ici test
compl.+GF+". Encore merci pour cette participation active et j'espère
qu'une
solution peut être envisagée.
Bonne journée et A+
Francis


"Jacky" wrote:

re..
Plutôt ceci
'-------
Sub jj3()
Application.ScreenUpdating = False
derlg = Sheets("facturation").Range("a65536").End(3).Row + 1
For f = 1 To Worksheets.Count
If Sheets(f).Name <> "facturation" And Sheets(f).Name <> "table" Then
Sheets(f).[g5:p104].Copy
Sheets("facturation").Activate
Range("a" & derlg).PasteSpecial Paste:=xlPasteValues
derlg = derlg + 100
End If
Next
End Sub
'----------
Bonne nuit.
JJ












Avatar
Jacky
Re..
La structure de ton fichier ne permet d'envoyer qu'une seule information à
la fois sur la feuille de facturation. éventuellement par un bouton placé
sur chaque feuille.
Chaque fois qu'une information sur une feuille et validée, l'envoyer sur la
facture.
Est-ce que c'est cela que tu souhaites ??

--
Salutations
JJ

"Frasax" a écrit dans le message de news:

Voici le lien, j'espère que ça fonctionnera. Bonne réception et cordiales
salutations
Francis
http://cjoint.com/?jumVlLN7ag

"Jacky" wrote:

Re..
Utilisation de Cjoint
Un clique sur "Parcourir..."
Chercher le fichier Zipper (500ko max.)
Un clique sur "Créer le lien Cjoint"
Le lien est copié automatiquement
Et un "coller" dans un message ici.

Le dernier code ne fait pas ??
--
Salutations
JJ

"Frasax" a écrit dans le message de
news:

Bonjour,
J'ai essayé d'envoyer mon fichier qui est assez lourd 1.56Mo et espère
qu'il
arrive, du fait que je ne sais pas utiliser la boîte d'envoi avec le
lien,
il
faut m'avertir si la réception est impossible. Pour en venir à ce
fichier,
j'ai dû le raccourcir, il pèse 4Mo. Un test partiel peut être fait dans
les
onglets et un test complet dans l'onglet où est noté "Essayez ici test
compl.+GF+". Encore merci pour cette participation active et j'espère
qu'une
solution peut être envisagée.
Bonne journée et A+
Francis


"Jacky" wrote:

re..
Plutôt ceci
'-------
Sub jj3()
Application.ScreenUpdating = False
derlg = Sheets("facturation").Range("a65536").End(3).Row + 1
For f = 1 To Worksheets.Count
If Sheets(f).Name <> "facturation" And Sheets(f).Name <> "table" Then
Sheets(f).[g5:p104].Copy
Sheets("facturation").Activate
Range("a" & derlg).PasteSpecial Paste:=xlPasteValues
derlg = derlg + 100
End If
Next
End Sub
'----------
Bonne nuit.
JJ














Avatar
Frasax
Hé bon travail, oui bien sur c'est OK, la problématique je la voyais
ailleurs. C'est-à-dire, si j'envoie mes données sur le document facturation,
1) ne vont-elles pas se chevaucher, 2) est-ce que le cumul d'une ligne ne va
pas créer une erreur, 3) je sais que la structure du fichier n'est pas
agréable à travailler, dans le pire des cas je pourrais modifier cette
structure. 4) Fait ce qu'il te parait le mieux.
A +
Cordialement
Francis


"Jacky" wrote:

Re..
La structure de ton fichier ne permet d'envoyer qu'une seule information à
la fois sur la feuille de facturation. éventuellement par un bouton placé
sur chaque feuille.
Chaque fois qu'une information sur une feuille et validée, l'envoyer sur la
facture.
Est-ce que c'est cela que tu souhaites ??

--
Salutations
JJ

"Frasax" a écrit dans le message de news:

Voici le lien, j'espère que ça fonctionnera. Bonne réception et cordiales
salutations
Francis
http://cjoint.com/?jumVlLN7ag

"Jacky" wrote:

Re..
Utilisation de Cjoint
Un clique sur "Parcourir..."
Chercher le fichier Zipper (500ko max.)
Un clique sur "Créer le lien Cjoint"
Le lien est copié automatiquement
Et un "coller" dans un message ici.

Le dernier code ne fait pas ??
--
Salutations
JJ

"Frasax" a écrit dans le message de
news:

Bonjour,
J'ai essayé d'envoyer mon fichier qui est assez lourd 1.56Mo et espère
qu'il
arrive, du fait que je ne sais pas utiliser la boîte d'envoi avec le
lien,
il
faut m'avertir si la réception est impossible. Pour en venir à ce
fichier,
j'ai dû le raccourcir, il pèse 4Mo. Un test partiel peut être fait dans
les
onglets et un test complet dans l'onglet où est noté "Essayez ici test
compl.+GF+". Encore merci pour cette participation active et j'espère
qu'une
solution peut être envisagée.
Bonne journée et A+
Francis


"Jacky" wrote:

re..
Plutôt ceci
'-------
Sub jj3()
Application.ScreenUpdating = False
derlg = Sheets("facturation").Range("a65536").End(3).Row + 1
For f = 1 To Worksheets.Count
If Sheets(f).Name <> "facturation" And Sheets(f).Name <> "table" Then
Sheets(f).[g5:p104].Copy
Sheets("facturation").Activate
Range("a" & derlg).PasteSpecial Paste:=xlPasteValues
derlg = derlg + 100
End If
Next
End Sub
'----------
Bonne nuit.
JJ



















Avatar
Jacky
Re...
Dans le retour de ce fichier, j'ai dû supprimer la feuille "table". Mon
zippeur ne Zippait pas en dessous de 500 ko
Rajoute la feuille table et regarde si cela convient.
http://cjoint.com/?jusXdGWjOD
--
Salutations
JJ

"Frasax" a écrit dans le message de news:

Hé bon travail, oui bien sur c'est OK, la problématique je la voyais
ailleurs. C'est-à-dire, si j'envoie mes données sur le document
facturation,
1) ne vont-elles pas se chevaucher, 2) est-ce que le cumul d'une ligne ne
va
pas créer une erreur, 3) je sais que la structure du fichier n'est pas
agréable à travailler, dans le pire des cas je pourrais modifier cette
structure. 4) Fait ce qu'il te parait le mieux.
A +
Cordialement
Francis


"Jacky" wrote:

Re..
La structure de ton fichier ne permet d'envoyer qu'une seule information
à
la fois sur la feuille de facturation. éventuellement par un bouton placé
sur chaque feuille.
Chaque fois qu'une information sur une feuille et validée, l'envoyer sur
la
facture.
Est-ce que c'est cela que tu souhaites ??

--
Salutations
JJ

"Frasax" a écrit dans le message de
news:

Voici le lien, j'espère que ça fonctionnera. Bonne réception et
cordiales
salutations
Francis
http://cjoint.com/?jumVlLN7ag

"Jacky" wrote:

Re..
Utilisation de Cjoint
Un clique sur "Parcourir..."
Chercher le fichier Zipper (500ko max.)
Un clique sur "Créer le lien Cjoint"
Le lien est copié automatiquement
Et un "coller" dans un message ici.

Le dernier code ne fait pas ??
--
Salutations
JJ

"Frasax" a écrit dans le message de
news:

Bonjour,
J'ai essayé d'envoyer mon fichier qui est assez lourd 1.56Mo et
espère
qu'il
arrive, du fait que je ne sais pas utiliser la boîte d'envoi avec le
lien,
il
faut m'avertir si la réception est impossible. Pour en venir à ce
fichier,
j'ai dû le raccourcir, il pèse 4Mo. Un test partiel peut être fait
dans
les
onglets et un test complet dans l'onglet où est noté "Essayez ici
test
compl.+GF+". Encore merci pour cette participation active et
j'espère
qu'une
solution peut être envisagée.
Bonne journée et A+
Francis


"Jacky" wrote:

re..
Plutôt ceci
'-------
Sub jj3()
Application.ScreenUpdating = False
derlg = Sheets("facturation").Range("a65536").End(3).Row + 1
For f = 1 To Worksheets.Count
If Sheets(f).Name <> "facturation" And Sheets(f).Name <> "table"
Then
Sheets(f).[g5:p104].Copy
Sheets("facturation").Activate
Range("a" & derlg).PasteSpecial Paste:=xlPasteValues
derlg = derlg + 100
End If
Next
End Sub
'----------
Bonne nuit.
JJ





















Avatar
Frasax
Super… Super… Super ; j’en espérais pas autant,.ça me convient parfaitement.
Comment est-ce que je peux exprimer mes Remerciements ?. Vous êtes, Tu es
vraiment formidable. Puis-je quand même, au cas où un problème survient
reprendre contact ? Comment faire connaître à d’autres tes compétences ?
Encore Merci et cordiales salutations.
Francis
-----------

"Jacky" wrote:

Re..
La structure de ton fichier ne permet d'envoyer qu'une seule information à
la fois sur la feuille de facturation. éventuellement par un bouton placé
sur chaque feuille.
Chaque fois qu'une information sur une feuille et validée, l'envoyer sur la
facture.
Est-ce que c'est cela que tu souhaites ??

--
Salutations
JJ

"Frasax" a écrit dans le message de news:

Voici le lien, j'espère que ça fonctionnera. Bonne réception et cordiales
salutations
Francis
http://cjoint.com/?jumVlLN7ag

"Jacky" wrote:

Re..
Utilisation de Cjoint
Un clique sur "Parcourir..."
Chercher le fichier Zipper (500ko max.)
Un clique sur "Créer le lien Cjoint"
Le lien est copié automatiquement
Et un "coller" dans un message ici.

Le dernier code ne fait pas ??
--
Salutations
JJ

"Frasax" a écrit dans le message de
news:

Bonjour,
J'ai essayé d'envoyer mon fichier qui est assez lourd 1.56Mo et espère
qu'il
arrive, du fait que je ne sais pas utiliser la boîte d'envoi avec le
lien,
il
faut m'avertir si la réception est impossible. Pour en venir à ce
fichier,
j'ai dû le raccourcir, il pèse 4Mo. Un test partiel peut être fait dans
les
onglets et un test complet dans l'onglet où est noté "Essayez ici test
compl.+GF+". Encore merci pour cette participation active et j'espère
qu'une
solution peut être envisagée.
Bonne journée et A+
Francis


"Jacky" wrote:

re..
Plutôt ceci
'-------
Sub jj3()
Application.ScreenUpdating = False
derlg = Sheets("facturation").Range("a65536").End(3).Row + 1
For f = 1 To Worksheets.Count
If Sheets(f).Name <> "facturation" And Sheets(f).Name <> "table" Then
Sheets(f).[g5:p104].Copy
Sheets("facturation").Activate
Range("a" & derlg).PasteSpecial Paste:=xlPasteValues
derlg = derlg + 100
End If
Next
End Sub
'----------
Bonne nuit.
JJ



















Avatar
Jacky
Re..
...,.ça me convient parfaitement.
Content pour toi.


Puis-je quand même, au cas où un problème survient
reprendre contact ?
Je pense que sur ce forum, on est tous là pour cela.


Tu es vraiment formidable
Comment faire connaître à d'autres tes compétences ?
Là, c'est un peu / beaucoup exagéré, comparer à d'autres, ici, je suis tout

petit.

JJ
Loin d'être le meilleur, je ne pense pas être le plus mauvais (je ne sais
plus de qui)


"Frasax" a écrit dans le message de
news:
Super. Super. Super ; j'en espérais pas autant,.ça me convient
parfaitement.

Comment est-ce que je peux exprimer mes Remerciements ?. Vous êtes, Tu es
vraiment formidable. Puis-je quand même, au cas où un problème survient
reprendre contact ? Comment faire connaître à d'autres tes compétences ?
Encore Merci et cordiales salutations.
Francis
-----------


1 2