OVH Cloud OVH Cloud

Aide macro Excel

7 réponses
Avatar
xx
Bonsoir a tous,

Je cherche a faire une macro qui prend une ligne, la copie, la colle
dans une autre page du même classeur, puis passe a la ligne suivante.
En fait ce qui me manque c'est surtout comment incrémenter la position
du curseur d'une ligne entre deux copies, vous me suivez ? :)

Merci a une âme charitable de me venir en aide et bonne soirée ;)

7 réponses

Avatar
JLuc
*Bonjour xx*,
Peut etre :

For Each cellule In Range("A1:A100")
cellule.Entirerow.Copy Destination:=...
...
Next
Bonsoir a tous,

Je cherche a faire une macro qui prend une ligne, la copie, la colle dans une
autre page du même classeur, puis passe a la ligne suivante.
En fait ce qui me manque c'est surtout comment incrémenter la position du
curseur d'une ligne entre deux copies, vous me suivez ? :)

Merci a une âme charitable de me venir en aide et bonne soirée ;)


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Elhijo
Bon je suis arrivé jusque la:


Sub test2()

Sheets("Feuil1").Select
ActiveCell.Offset(0, 2).Columns("A:A").EntireColumn.Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="e_amoust"
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select


End Sub

Mais quand je l'execute il me dit: Run-time error '1004' Pass method of
worksheet class failed

J'ai rajouté cette ligne a la main "ActiveSheet.Paste" car quand
j'utilise l'utilitaire pour enregistrer les macros il ne la met pas et
evidemment quand je l'execute sans cette ligne, il ne passe rien, mais
la macro va jusqu'au bout.

Quelqu'un aurait il une idée, ou une autre "pass method" ?

Merci a vous



*Bonjour xx*,
Peut etre :

For Each cellule In Range("A1:A100")
cellule.Entirerow.Copy Destination:=...
...
Next
Bonsoir a tous,

Je cherche a faire une macro qui prend une ligne, la copie, la colle
dans une autre page du même classeur, puis passe a la ligne suivante.
En fait ce qui me manque c'est surtout comment incrémenter la position
du curseur d'une ligne entre deux copies, vous me suivez ? :)

Merci a une âme charitable de me venir en aide et bonne soirée ;)





Avatar
JLuc
*Bonjour Elhijo*,
Et comme ca ?

Sub Recopie()
For x = 1 To Worksheets("Feuil1").Range("a65536").End(xlUp).Row
If Sheets("Feuil1").Cells(x, 1) = "Texte" Then
ligne = Worksheets("Feuil2").Range("a65536").End(xlUp).Row + 1
Sheets("Feuil1").Cells(x, 1).EntireRow.Copy _
Destination:=Worksheets("Feuil2").Cells(ligne, 1)
End If
Next
End Sub


Bon je suis arrivé jusque la:


Sub test2()

Sheets("Feuil1").Select
ActiveCell.Offset(0, 2).Columns("A:A").EntireColumn.Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="e_amoust"
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select


End Sub

Mais quand je l'execute il me dit: Run-time error '1004' Pass method of
worksheet class failed

J'ai rajouté cette ligne a la main "ActiveSheet.Paste" car quand j'utilise
l'utilitaire pour enregistrer les macros il ne la met pas et evidemment quand
je l'execute sans cette ligne, il ne passe rien, mais la macro va jusqu'au
bout.

Quelqu'un aurait il une idée, ou une autre "pass method" ?

Merci a vous



*Bonjour xx*,
Peut etre :

For Each cellule In Range("A1:A100")
cellule.Entirerow.Copy Destination:=...
...
Next
Bonsoir a tous,

Je cherche a faire une macro qui prend une ligne, la copie, la colle dans
une autre page du même classeur, puis passe a la ligne suivante.
En fait ce qui me manque c'est surtout comment incrémenter la position du
curseur d'une ligne entre deux copies, vous me suivez ? :)

Merci a une âme charitable de me venir en aide et bonne soirée ;)





--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



Avatar
Elhijo
Je suis pas bien sur de ce je doit faire de ca, une petit explication
serait la bien venue, j'ai oublié de mentionner que je ne connais rien au VB

*Bonjour Elhijo*,
Et comme ca ?

Sub Recopie()
For x = 1 To Worksheets("Feuil1").Range("a65536").End(xlUp).Row
If Sheets("Feuil1").Cells(x, 1) = "Texte" Then
ligne = Worksheets("Feuil2").Range("a65536").End(xlUp).Row + 1
Sheets("Feuil1").Cells(x, 1).EntireRow.Copy _
Destination:=Worksheets("Feuil2").Cells(ligne, 1)
End If
Next
End Sub


Bon je suis arrivé jusque la:


Sub test2()

Sheets("Feuil1").Select
ActiveCell.Offset(0, 2).Columns("A:A").EntireColumn.Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="e_amoust"
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select


End Sub

Mais quand je l'execute il me dit: Run-time error '1004' Pass method
of worksheet class failed

J'ai rajouté cette ligne a la main "ActiveSheet.Paste" car quand
j'utilise l'utilitaire pour enregistrer les macros il ne la met pas et
evidemment quand je l'execute sans cette ligne, il ne passe rien, mais
la macro va jusqu'au bout.

Quelqu'un aurait il une idée, ou une autre "pass method" ?

Merci a vous



*Bonjour xx*,
Peut etre :

For Each cellule In Range("A1:A100")
cellule.Entirerow.Copy Destination:=...
...
Next
Bonsoir a tous,

Je cherche a faire une macro qui prend une ligne, la copie, la colle
dans une autre page du même classeur, puis passe a la ligne suivante.
En fait ce qui me manque c'est surtout comment incrémenter la
position du curseur d'une ligne entre deux copies, vous me suivez ? :)

Merci a une âme charitable de me venir en aide et bonne soirée ;)










Avatar
JLuc
*Bonjour Elhijo*,
Tu copie la proc complete, tu la colle en dessous de la tienne et tu
adapte a ton besoin : le controle de "Texte", le depart en ligne 1...

Je suis pas bien sur de ce je doit faire de ca, une petit explication serait
la bien venue, j'ai oublié de mentionner que je ne connais rien au VB

*Bonjour Elhijo*,
Et comme ca ?

Sub Recopie()
For x = 1 To Worksheets("Feuil1").Range("a65536").End(xlUp).Row
If Sheets("Feuil1").Cells(x, 1) = "Texte" Then
ligne = Worksheets("Feuil2").Range("a65536").End(xlUp).Row + 1
Sheets("Feuil1").Cells(x, 1).EntireRow.Copy _
Destination:=Worksheets("Feuil2").Cells(ligne, 1)
End If
Next
End Sub


Bon je suis arrivé jusque la:


Sub test2()

Sheets("Feuil1").Select
ActiveCell.Offset(0, 2).Columns("A:A").EntireColumn.Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="e_amoust"
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select


End Sub

Mais quand je l'execute il me dit: Run-time error '1004' Pass method of
worksheet class failed

J'ai rajouté cette ligne a la main "ActiveSheet.Paste" car quand j'utilise
l'utilitaire pour enregistrer les macros il ne la met pas et evidemment
quand je l'execute sans cette ligne, il ne passe rien, mais la macro va
jusqu'au bout.

Quelqu'un aurait il une idée, ou une autre "pass method" ?

Merci a vous



*Bonjour xx*,
Peut etre :

For Each cellule In Range("A1:A100")
cellule.Entirerow.Copy Destination:=...
...
Next
Bonsoir a tous,

Je cherche a faire une macro qui prend une ligne, la copie, la colle
dans une autre page du même classeur, puis passe a la ligne suivante.
En fait ce qui me manque c'est surtout comment incrémenter la position
du curseur d'une ligne entre deux copies, vous me suivez ? :)

Merci a une âme charitable de me venir en aide et bonne soirée ;)








--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Avatar
Elhijo
Nikel, merci beaucoup, je comprend pas vraiment qu'est ce qu'il ce passe
mais ca marche :)
Par contre, j'ai remarqué que quoi que je mette dans le controle de
"Texte", cela fonctionne quand meme.

Si tu avais un peut de temps pour m'expliquer ce que la proc fait, je
serai ravi :)

Bonne soirée


*Bonjour Elhijo*,
Tu copie la proc complete, tu la colle en dessous de la tienne et tu
adapte a ton besoin : le controle de "Texte", le depart en ligne 1...

Je suis pas bien sur de ce je doit faire de ca, une petit explication
serait la bien venue, j'ai oublié de mentionner que je ne connais rien
au VB

*Bonjour Elhijo*,
Et comme ca ?

Sub Recopie()
For x = 1 To Worksheets("Feuil1").Range("a65536").End(xlUp).Row
If Sheets("Feuil1").Cells(x, 1) = "Texte" Then
ligne = Worksheets("Feuil2").Range("a65536").End(xlUp).Row + 1
Sheets("Feuil1").Cells(x, 1).EntireRow.Copy _
Destination:=Worksheets("Feuil2").Cells(ligne, 1)
End If
Next
End Sub


Bon je suis arrivé jusque la:


Sub test2()

Sheets("Feuil1").Select
ActiveCell.Offset(0, 2).Columns("A:A").EntireColumn.Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="e_amoust"
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select


End Sub

Mais quand je l'execute il me dit: Run-time error '1004' Pass method
of worksheet class failed

J'ai rajouté cette ligne a la main "ActiveSheet.Paste" car quand
j'utilise l'utilitaire pour enregistrer les macros il ne la met pas
et evidemment quand je l'execute sans cette ligne, il ne passe rien,
mais la macro va jusqu'au bout.

Quelqu'un aurait il une idée, ou une autre "pass method" ?

Merci a vous



*Bonjour xx*,
Peut etre :

For Each cellule In Range("A1:A100")
cellule.Entirerow.Copy Destination:=...
...
Next
Bonsoir a tous,

Je cherche a faire une macro qui prend une ligne, la copie, la
colle dans une autre page du même classeur, puis passe a la ligne
suivante.
En fait ce qui me manque c'est surtout comment incrémenter la
position du curseur d'une ligne entre deux copies, vous me suivez
? :)

Merci a une âme charitable de me venir en aide et bonne soirée ;)















Avatar
JLuc
*Bonjour Elhijo*,


Nikel, merci beaucoup, je comprend pas vraiment qu'est ce qu'il ce passe mais
ca marche :)
Par contre, j'ai remarqué que quoi que je mette dans le controle de "Texte",
cela fonctionne quand meme.

Si tu avais un peut de temps pour m'expliquer ce que la proc fait, je serai
ravi :)
On va essayer !


Sub Recopie()
1ere ligne : je fais une boucle de 1 a derniere ligne renseignee (1, 2,




3 ,4 ,...)
For x = 1 To Worksheets("Feuil1").Range("a65536").End(xlUp).Row





Ici, je fais un test : si le contenu de la cellule ligne x (1, 2, ...)
et colonne 1 donc "A" est egale au mot "Texte" alors
If Sheets("Feuil1").Cells(x, 1) = "Texte" Then





dans la variable "ligne", je recupere la derniere ligne vide de la
feuille "Feuil2"
ligne = Worksheets("Feuil2").Range("a65536").End(xlUp).Row + 1





je copie la ligne entiere de la feuille "Feuil1" dans la feuille
"Feuil2" sur la ligne "ligne"
Sheets("Feuil1").Cells(x, 1).EntireRow.Copy _
Destination:=Worksheets("Feuil2").Cells(ligne, 1)





Fin du test
si le test plus haut est faux, je ne fais rien
End If





et avec next, je boucle en ajoutant 1 a x (implicite)
Next
End Sub





Voila :oÞ
Bonne soirée
A toi aussi



*Bonjour Elhijo*,
Tu copie la proc complete, tu la colle en dessous de la tienne et tu adapte
a ton besoin : le controle de "Texte", le depart en ligne 1...

Je suis pas bien sur de ce je doit faire de ca, une petit explication
serait la bien venue, j'ai oublié de mentionner que je ne connais rien au
VB

*Bonjour Elhijo*,
Et comme ca ?

Sub Recopie()
For x = 1 To Worksheets("Feuil1").Range("a65536").End(xlUp).Row
If Sheets("Feuil1").Cells(x, 1) = "Texte" Then
ligne = Worksheets("Feuil2").Range("a65536").End(xlUp).Row + 1
Sheets("Feuil1").Cells(x, 1).EntireRow.Copy _
Destination:=Worksheets("Feuil2").Cells(ligne, 1)
End If
Next
End Sub


Bon je suis arrivé jusque la:


Sub test2()

Sheets("Feuil1").Select
ActiveCell.Offset(0, 2).Columns("A:A").EntireColumn.Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="e_amoust"
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select


End Sub

Mais quand je l'execute il me dit: Run-time error '1004' Pass method of
worksheet class failed

J'ai rajouté cette ligne a la main "ActiveSheet.Paste" car quand
j'utilise l'utilitaire pour enregistrer les macros il ne la met pas et
evidemment quand je l'execute sans cette ligne, il ne passe rien, mais
la macro va jusqu'au bout.

Quelqu'un aurait il une idée, ou une autre "pass method" ?

Merci a vous



*Bonjour xx*,
Peut etre :

For Each cellule In Range("A1:A100")
cellule.Entirerow.Copy Destination:=...
...
Next
Bonsoir a tous,

Je cherche a faire une macro qui prend une ligne, la copie, la colle
dans une autre page du même classeur, puis passe a la ligne suivante.
En fait ce qui me manque c'est surtout comment incrémenter la position
du curseur d'une ligne entre deux copies, vous me suivez ? :)

Merci a une âme charitable de me venir en aide et bonne soirée ;)











--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O