report feuille a feuille

16 réponses
Avatar
Lionel M
http://www.cjoint.com/c/FGrjZH8h7Mv

Dans mon fichier essai joint

je tente par la macro de recopier les valeurs de la 'feuil2' dans la 'feuil1'
ma macro ne fonctionne pas ...

Par ailleurs si je veux ne recopier que la ligne sur laquelle je suis avant de lancer la macro possible mais je bloque

Merci de votre aide

Lionel

10 réponses

1 2
Avatar
MichD
Bonjour,
Essaie comme ceci:
'-----------------------------------------------------
Sub Macro1()
'Application.ScreenUpdating = False
Dim X As Long, i As Long, T()
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil2")
.Range("B11") = 2016
End With
X = 6
For i = 21 To 44 Step 4
T = Worksheets("Feuil2").Range("A" & i).Resize(, 33).Value
Worksheets("Feuil1").Range("A" & X).Resize(, UBound(T, 2)) = T
X = X + 5
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------------
MichD
Avatar
Lionel M
Le dimanche 17 juillet 2016 12:59:55 UTC+2, MichD a écrit :
Bonjour,
Essaie comme ceci:
'-----------------------------------------------------
Sub Macro1()
'Application.ScreenUpdating = False
Dim X As Long, i As Long, T()
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil2")
.Range("B11") = 2016
End With
X = 6
For i = 21 To 44 Step 4
T = Worksheets("Feuil2").Range("A" & i).Resize(, 33).Value
Worksheets("Feuil1").Range("A" & X).Resize(, UBound(T, 2)) = T
X = X + 5
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------------
MichD

Salut
Ok ca recopie mais c'est décalé ...
et si je veux recopier la ligne active?
Merci
Avatar
MichD
Ok ca recopie mais c'est décalé ...

Je n'avais pas remarqué que les colonnes A et B étaient fusionnées.
Il n'y a aucune raison de fusionner ces 2 colonnes. As-tu remarqué
que tu peux choisir la largeur d'une colonne? Alors ?
et si je veux recopier la ligne active?

De quelle feuille?
Tu veux la recopier où? Sur la première ligne disponible en Feuil1?
Sois précis dans ta demande.
MichD
Avatar
Lionel M
Le dimanche 17 juillet 2016 14:15:40 UTC+2, MichD a écrit :
Ok ca recopie mais c'est décalé ...

Je n'avais pas remarqué que les colonnes A et B étaient fusionn ées.
Il n'y a aucune raison de fusionner ces 2 colonnes. As-tu remarqué
que tu peux choisir la largeur d'une colonne? Alors ?
et si je veux recopier la ligne active?

De quelle feuille?
Tu veux la recopier où? Sur la première ligne disponible en Feu il1?
Sois précis dans ta demande.
MichD

J'ai besoin de deux colonnes ...
c'est le meme probleme mais au lei de recopier toutes les lignes il ne faud rait recopier que la ligne active...
Avatar
Lionel M
Le dimanche 17 juillet 2016 11:55:28 UTC+2, Lionel M a écrit :
http://www.cjoint.com/c/FGrjZH8h7Mv
Dans mon fichier essai joint
je tente par la macro de recopier les valeurs de la 'feuil2' dans la 'feu il1'
ma macro ne fonctionne pas ...
Par ailleurs si je veux ne recopier que la ligne sur laquelle je suis ava nt de lancer la macro possible mais je bloque
Merci de votre aide
Lionel
Avatar
Lionel M
Le dimanche 17 juillet 2016 14:25:41 UTC+2, Lionel M a écrit :
Le dimanche 17 juillet 2016 14:15:40 UTC+2, MichD a écrit :
> Ok ca recopie mais c'est décalé ...
Je n'avais pas remarqué que les colonnes A et B étaient fusio nnées.
Il n'y a aucune raison de fusionner ces 2 colonnes. As-tu remarqué
que tu peux choisir la largeur d'une colonne? Alors ?
> et si je veux recopier la ligne active?
De quelle feuille?
Tu veux la recopier où? Sur la première ligne disponible en F euil1?
Sois précis dans ta demande.
MichD

J'ai besoin de deux colonnes ...
c'est le meme probleme mais au lei de recopier toutes les lignes il ne fa udrait recopier que la ligne active...

Par ailleurs la(es) macro(s) doivent etre lancées depuis la feuil1 ou 3 ou 5 la seule qui est inamovible est la feuil2
Merci
Avatar
MichD
Utilise la macro qui convient.
Des lignes ou colonnes fusionnées dans un tableau de données est une
très mauvaise idée. Selon le traitement que tu veux faire de ces
données, tu peux rencontrer de drôles de pépins!
Décalage corrigé :
'--------------------------------------------------------
Sub Recopier_tout_Le_Tableau()
'Application.ScreenUpdating = False
Dim X As Long, i As Long, T()
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil2")
.Range("B11") = 2016
End With
X = 6
For i = 21 To 44 Step 4
Worksheets("Feuil1").Range("A" & X) =
Worksheets("Feuil2").Range("A" & i)
T = Worksheets("Feuil2").Range("C" & i).Resize(, 31).Value
Worksheets("Feuil1").Range("B" & X).Resize(, UBound(T, 2)) = T
X = X + 5
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------
Sub Recopier_La_Ligne_Active()
Application.ScreenUpdating = False
Dim X As Long, i As Long, R As Long
Dim LastRow As Long, T()
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil2")
.Activate
R = ActiveCell.Row
End With
With Worksheets("Feuil1")
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row + 1
Worksheets("Feuil1").Range("A" & LastRow) =
Worksheets("Feuil2").Range("A" & R)
T = Worksheets("Feuil2").Range("C" & R).Resize(, 31).Value
.Range("B" & LastRow).Resize(, UBound(T, 2)) = T
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------
MichD
Avatar
Lionel M
Le dimanche 17 juillet 2016 16:42:38 UTC+2, MichD a écrit :
Utilise la macro qui convient.
Des lignes ou colonnes fusionnées dans un tableau de données es t une
très mauvaise idée. Selon le traitement que tu veux faire de ce s
données, tu peux rencontrer de drôles de pépins!
Décalage corrigé :
'--------------------------------------------------------
Sub Recopier_tout_Le_Tableau()
'Application.ScreenUpdating = False
Dim X As Long, i As Long, T()
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil2")
.Range("B11") = 2016
End With
X = 6
For i = 21 To 44 Step 4
Worksheets("Feuil1").Range("A" & X) =
Worksheets("Feuil2").Range("A" & i)
T = Worksheets("Feuil2").Range("C" & i).Resize(, 31).Value
Worksheets("Feuil1").Range("B" & X).Resize(, UBound(T, 2)) = T
X = X + 5
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------
Sub Recopier_La_Ligne_Active()
Application.ScreenUpdating = False
Dim X As Long, i As Long, R As Long
Dim LastRow As Long, T()
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil2")
.Activate
R = ActiveCell.Row
End With
With Worksheets("Feuil1")
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row + 1
Worksheets("Feuil1").Range("A" & LastRow) =
Worksheets("Feuil2").Range("A" & R)
T = Worksheets("Feuil2").Range("C" & R).Resize(, 31).Value
.Range("B" & LastRow).Resize(, UBound(T, 2)) = T
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------
MichD

Rebonsoir...
la macro pour la ligne active ne fonctionne pas
elle change de page mais rien ne se passe...
Par ailleurs elle ne fonctionnera que de la feuille 1 et il me faudra autan t de macro que de page, c'est cela ?
Avatar
MichD
Le 17/07/16 à 15:11, Lionel M a écrit :
la macro pour la ligne active ne fonctionne pas
elle change de page mais rien ne se passe...

Ton classeur en retour avec les 2 macros inclues.
http://www.cjoint.com/c/FGrt0WyD0li
ET ÇA FONCTIONNE!
Par ailleurs elle ne fonctionnera que de la feuille 1 et il me faudra

autant de macro que de page, c'est cela ?
**** D'abord, je n'ai pas lu cela dans tes premières interventions.
**** Si tu copies les données de la ligne active toujours vers la
feuil1, ce n'est pas un problème! Si tu veux copier les données sur
différentes feuilles, il faudra trouver un moyen de le dire à la macro.
Il n'y a pas de miracle! Pour ce faire, il faudrait que tu expliques en
détail comment ton application fonctionne... et selon tes explications
ce n'est pas sûr que la chose soit possible!
MichD
Avatar
Lionel M
Le dimanche 17 juillet 2016 22:05:16 UTC+2, MichD a écrit :
Le 17/07/16 à 15:11, Lionel M a écrit :
la macro pour la ligne active ne fonctionne pas
elle change de page mais rien ne se passe...

Ton classeur en retour avec les 2 macros inclues.
http://www.cjoint.com/c/FGrt0WyD0li
ET ÇA FONCTIONNE!
Par ailleurs elle ne fonctionnera que de la feuille 1 et il me faudra
autant de macro que de page, c'est cela ?
**** D'abord, je n'ai pas lu cela dans tes premières interventions.
**** Si tu copies les données de la ligne active toujours vers la
feuil1, ce n'est pas un problème! Si tu veux copier les données sur
différentes feuilles, il faudra trouver un moyen de le dire à l a macro.
Il n'y a pas de miracle! Pour ce faire, il faudrait que tu expliques en
détail comment ton application fonctionne... et selon tes explicatio ns
ce n'est pas sûr que la chose soit possible!
MichD

Desolé encore mais la macro de la ligne active est pas celle attendue
La feuille 1 (ou n''importe quelle feuille) est la page d'ou part la macro et donc la cellule activée est celle de cette page et c'est sur cette ligne que doit etre recopiée la ligne de la feuil2
1 2