Archiver des lignes d'un onglet à l'autre
Résolu/Fermé
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
-
20 juil. 2012 à 09:56
delouxange Messages postés 10 Date d'inscription vendredi 20 juillet 2012 Statut Membre Dernière intervention 24 juillet 2012 - 24 juil. 2012 à 15:04
delouxange Messages postés 10 Date d'inscription vendredi 20 juillet 2012 Statut Membre Dernière intervention 24 juillet 2012 - 24 juil. 2012 à 15:04
A voir également:
- Archiver des lignes d'un onglet à l'autre
- Rouvrir un onglet fermé - Guide
- Aller à la ligne excel - Guide
- Onglet privé - Guide
- Comment cacher une conversation whatsapp sans archiver - Guide
- Comment archiver des sms - Guide
12 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
20 juil. 2012 à 15:16
20 juil. 2012 à 15:16
Bonjour,
script out of range
Ca sent la boucle infinie à plein nez.
Cependant, juste avec ton code, difficile de se rendre compte.
Pourrais tu, stp, nous communiquer un classeur exemple avec tes données non confidentielles?
Pour cela, utilises https://www.cjoint.com/
script out of range
Ca sent la boucle infinie à plein nez.
Cependant, juste avec ton code, difficile de se rendre compte.
Pourrais tu, stp, nous communiquer un classeur exemple avec tes données non confidentielles?
Pour cela, utilises https://www.cjoint.com/
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
20 juil. 2012 à 16:37
20 juil. 2012 à 16:37
Bonjour,
merci pour la réponse
ci-dessous le lien vers le fichier : https://www.cjoint.com/?3GuqKU4sSQB
merci pour la réponse
ci-dessous le lien vers le fichier : https://www.cjoint.com/?3GuqKU4sSQB
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
20 juil. 2012 à 16:49
20 juil. 2012 à 16:49
Bon...
Les noms de ta feuille "Opportunitties july 2012" dans ton code ne correspondent pas au nom de ta feuille. Le nom de ta feuille comporte un espace au bout.....
Ensuite, la méthode de Copy ne fonctionne pas comme cela.
Ne change pas les noms de tes feuilles et essaie ce code :
Les noms de ta feuille "Opportunitties july 2012" dans ton code ne correspondent pas au nom de ta feuille. Le nom de ta feuille comporte un espace au bout.....
Ensuite, la méthode de Copy ne fonctionne pas comme cela.
Ne change pas les noms de tes feuilles et essaie ce code :
Sub Archiver() Sheets("Opportunities archives").Activate j1 = Range("C21").CurrentRegion.Rows.Count Sheets("Opportunities july 2012 ").Activate colStatus = Range("Status").Column colUpdate = Range("Update").Column colAmount = Range("Opportunity_amount").Column ligne = Range("Icidepart").Row i = 1 k1 = 0 k2 = 0 k3 = 0 Do 'Archivage opportunities If Month(Cells(ligne + i, colUpdate)) < Date And Cells(ligne + i, colStatus) = "Vente" Or Cells(ligne + i, colStatus) = "Abandon" Or Cells(ligne + i, colStatus) = "Perdu" Then Sheets("Opportunities july 2012 ").Range("A" & ligne + i & ":AL" & ligne + i).Copy _ Destination:=Worksheets("Opportunities archives").Cells(j1 + k1 + 21, 1) k1 = k1 + 1 Sheets("Opportunities july 2012 ").Rows(i + ligne).Delete Else i = i + 1 End If Sheets("Opportunities july 2012 ").Activate Loop While Not IsEmpty(Cells(ligne + i, colUpdate)) End Sub
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
20 juil. 2012 à 17:15
20 juil. 2012 à 17:15
la macro tourne, mais elle ne fait que supprimer, elle ne copie pas dans les archives !
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
Modifié par pijaku le 21/07/2012 à 09:10
Modifié par pijaku le 21/07/2012 à 09:10
il faudrait alors changer la ligne en gras... pour copier le bon range.
Comme ceci peut être :
Comme ceci peut être :
Sub Archiver() Sheets("Opportunities archives").Activate j1 = Range("C21").CurrentRegion.Rows.Count Sheets("Opportunities july 2012 ").Activate colStatus = Range("Status").Column colUpdate = Range("Update").Column colAmount = Range("Opportunity_amount").Column ligne = Range("Icidepart").Row i = 1 k1 = 0 k2 = 0 k3 = 0 Do 'Archivage opportunities If Month(Cells(ligne + i, colUpdate)) < Date And Cells(ligne + i, colStatus) = "Vente" Or Cells(ligne + i, colStatus) = "Abandon" Or Cells(ligne + i, colStatus) = "Perdu" Then Sheets("Opportunities july 2012 ").Rows(i + ligne).Copy _ Destination:=Worksheets("Opportunities archives").Cells(j1 + k1 + 21, 1) k1 = k1 + 1 Sheets("Opportunities july 2012 ").Rows(i + ligne).Delete Else i = i + 1 End If Sheets("Opportunities july 2012 ").Activate Loop While Not IsEmpty(Cells(ligne + i, colUpdate)) End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
23 juil. 2012 à 11:55
23 juil. 2012 à 11:55
Pijaku,
la macro marche assez bien, merci encore. Cependant, dans la feuille Archives, elle copie toujours au même endroit, à partir de la ligne juste en dessous des entêtes... Pas moyen de lui faire copier alleurs.
J'ai essayé de faire une macro "Activate cell" toute seule pour voir comment elle marche, et c'est pareil, elle sélectionne toujours la cellule en dessous des entêtes !
Je te met le fichier au même endroit que précédemment, tu verras les 2 macros
la macro marche assez bien, merci encore. Cependant, dans la feuille Archives, elle copie toujours au même endroit, à partir de la ligne juste en dessous des entêtes... Pas moyen de lui faire copier alleurs.
J'ai essayé de faire une macro "Activate cell" toute seule pour voir comment elle marche, et c'est pareil, elle sélectionne toujours la cellule en dessous des entêtes !
Je te met le fichier au même endroit que précédemment, tu verras les 2 macros
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
23 juil. 2012 à 11:57
23 juil. 2012 à 11:57
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
23 juil. 2012 à 15:15
23 juil. 2012 à 15:15
Bon, j'ai fait des progrès par rapport à ce matin. j'ai trouvé la forme de petite macro qui fait ce que je veux. Et quand je la réutilise dans la grande, évidemment ça ne marche plus !! j'en peux plus, svp, aidez-moi !
Il me retourne une erreur 400 sur la ligne Destination...
Ci-dessous la petite macro (elle s'appelle copier ligne, ne faites pas attention) :
Sub Copier_ligne()
' Copier_ligne Macro
Sheets("Opportunities archives").Activate
Range("c7").End(xlDown).Select
j1 = ActiveCell.Row + 1
Cells(j1, 1) = "Vu"
End Sub
Et la grande, qui me retourne une erreur :
Sub Archiver()
Sheets("Opportunities archives").Activate
Range("c7").End(xlDown).Select
j1 = ActiveCell.Row + 1
Sheets("Opportunities july 2012").Activate
colStatus = Range("Status").Column
colUpdate = Range("Update").Column
colAmount = Range("Opportunity_amount").Column
ligne = Range("Icidepart").Row
i = 1
k1 = 0
Do
'Archivage opportunities
If Month(Cells(ligne + i, colUpdate)) < Date And Cells(ligne + i, colStatus) = "Vente" Or Cells(ligne + i, colStatus) = "Abandon" Or Cells(ligne + i, colStatus) = "Perdu" Then
Sheets("Opportunities july 2012").Rows(ligne + i).Copy _
Destination:=Worksheets("Opportunities archives").Rows(j1 + k1)
k1 = k1 + 1
Sheets("Opportunities july 2012").Rows(i + ligne).Delete
Else
i = i + 1
End If
Sheets("Opportunities july 2012").Activate
Loop While Not IsEmpty(Cells(ligne + i, colUpdate))
End Sub
Il me retourne une erreur 400 sur la ligne Destination...
Ci-dessous la petite macro (elle s'appelle copier ligne, ne faites pas attention) :
Sub Copier_ligne()
' Copier_ligne Macro
Sheets("Opportunities archives").Activate
Range("c7").End(xlDown).Select
j1 = ActiveCell.Row + 1
Cells(j1, 1) = "Vu"
End Sub
Et la grande, qui me retourne une erreur :
Sub Archiver()
Sheets("Opportunities archives").Activate
Range("c7").End(xlDown).Select
j1 = ActiveCell.Row + 1
Sheets("Opportunities july 2012").Activate
colStatus = Range("Status").Column
colUpdate = Range("Update").Column
colAmount = Range("Opportunity_amount").Column
ligne = Range("Icidepart").Row
i = 1
k1 = 0
Do
'Archivage opportunities
If Month(Cells(ligne + i, colUpdate)) < Date And Cells(ligne + i, colStatus) = "Vente" Or Cells(ligne + i, colStatus) = "Abandon" Or Cells(ligne + i, colStatus) = "Perdu" Then
Sheets("Opportunities july 2012").Rows(ligne + i).Copy _
Destination:=Worksheets("Opportunities archives").Rows(j1 + k1)
k1 = k1 + 1
Sheets("Opportunities july 2012").Rows(i + ligne).Delete
Else
i = i + 1
End If
Sheets("Opportunities july 2012").Activate
Loop While Not IsEmpty(Cells(ligne + i, colUpdate))
End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
23 juil. 2012 à 15:54
23 juil. 2012 à 15:54
Bonjour,
Dans ta destination, tu n'as pas besoin d'indiquer toute la ligne (Rows(machin)), mais l'adresse de la cellule en colonne A ou tu veux coller tes données :
Dans ta destination, tu n'as pas besoin d'indiquer toute la ligne (Rows(machin)), mais l'adresse de la cellule en colonne A ou tu veux coller tes données :
Destination:=Worksheets("Opportunities archives").Range("A" & j1 + k1)
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
23 juil. 2012 à 17:18
23 juil. 2012 à 17:18
Pijaku,
Elle marche la macro chez toi ? Parce que pour moi, ça ne marche pas
Elle marche la macro chez toi ? Parce que pour moi, ça ne marche pas
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
23 juil. 2012 à 18:44
23 juil. 2012 à 18:44
elle ne marche pas ne signifie pas grand chose... Peux tu être plus précis?
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
23 juil. 2012 à 19:08
23 juil. 2012 à 19:08
est-ce que, sur ton fichier, la macro réalise ce qui est attendu ?
la mienne ne marche pas, c'est à dire que le résultat n'est pas l'attendu. En fait, j'ai l'impression que tu n'essaies pas ce que tu me conseilles
en l'occurence, elle ne se réalise pas car j'obtiens une erreur 400
la mienne ne marche pas, c'est à dire que le résultat n'est pas l'attendu. En fait, j'ai l'impression que tu n'essaies pas ce que tu me conseilles
en l'occurence, elle ne se réalise pas car j'obtiens une erreur 400
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
24 juil. 2012 à 09:59
24 juil. 2012 à 09:59
Bonjour,
1- oui la macro réalise "ce qui est attendu". En même temps, "ce qui est attendu" n'a jamais vraiment été décris dans tes messages précédents.. Si si tu peux relire!
2- la mienne ne marche pas, c'est à dire que le résultat n'est pas l'attendu
Cf 1
3- En fait, j'ai l'impression que tu n'essaies pas ce que tu me conseilles
Je te retournes le compliment. N'oublies pas que je suis bénévole et j'essaie ce que je veux. Par contre, en tant que demandeur tu peux essayer ce que je te dis... Cf ici
Mais bref laissons tomber cela et revenons à notre sujet.
4- en l'occurence, elle ne se réalise pas car j'obtiens une erreur 400
L'erreur 400 apparaît sur qu'elle ligne? Quel est exactement le message d'erreur?
Parce que moi, quand j'essaye, en modifiant ta macro avec mes conseils trouvés dans ce fil de discussion, ça marche!
Essaie ce code :
1- oui la macro réalise "ce qui est attendu". En même temps, "ce qui est attendu" n'a jamais vraiment été décris dans tes messages précédents.. Si si tu peux relire!
2- la mienne ne marche pas, c'est à dire que le résultat n'est pas l'attendu
Cf 1
3- En fait, j'ai l'impression que tu n'essaies pas ce que tu me conseilles
Je te retournes le compliment. N'oublies pas que je suis bénévole et j'essaie ce que je veux. Par contre, en tant que demandeur tu peux essayer ce que je te dis... Cf ici
Mais bref laissons tomber cela et revenons à notre sujet.
4- en l'occurence, elle ne se réalise pas car j'obtiens une erreur 400
L'erreur 400 apparaît sur qu'elle ligne? Quel est exactement le message d'erreur?
Parce que moi, quand j'essaye, en modifiant ta macro avec mes conseils trouvés dans ce fil de discussion, ça marche!
Essaie ce code :
Sub Archiver() colStatus = Range("Status").Column colUpdate = Range("Update").Column colAmount = Range("Opportunity_amount").Column ligne = Range("Icidepart").Row i = 1 Do 'Archivage opportunities If Month(Cells(ligne + i, colUpdate)) < Date And Cells(ligne + i, colStatus) = "Vente" Or Cells(ligne + i, colStatus) = "Abandon" Or Cells(ligne + i, colStatus) = "Perdu" Then Sheets("Opportunities july 2012").Rows(ligne + i).Copy Worksheets("Opportunities archives").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) Sheets("Opportunities july 2012").Rows(i + ligne).Delete Else i = i + 1 End If Loop While Not IsEmpty(Cells(ligne + i, colUpdate)) End Sub
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
24 juil. 2012 à 11:47
24 juil. 2012 à 11:47
Bonjour Pijaku,
ça y est, elle fonctionne !
merci
j'ai tout à fait conscience que tu es bénévole et j'ai essayé ce que tu m'as dit. C'est parce que cela ne fonctionnait pas chez moi que je t'ai posé la question
bien contente que ça fonctionne, j'y ai passé 3h hier...
je n'ai plus qu'à la transférer dans l'autre fichier avec les données confidentielles, en espérant qu'une erreur inattendue et sournoise n'apparaisse pas...
ça y est, elle fonctionne !
merci
j'ai tout à fait conscience que tu es bénévole et j'ai essayé ce que tu m'as dit. C'est parce que cela ne fonctionnait pas chez moi que je t'ai posé la question
bien contente que ça fonctionne, j'y ai passé 3h hier...
je n'ai plus qu'à la transférer dans l'autre fichier avec les données confidentielles, en espérant qu'une erreur inattendue et sournoise n'apparaisse pas...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
24 juil. 2012 à 11:53
24 juil. 2012 à 11:53
une erreur inattendue et sournoise n'apparaisse pas
S jamais c'est le cas, reviens nous voir.
A+
S jamais c'est le cas, reviens nous voir.
A+
delouxange
Messages postés
10
Date d'inscription
vendredi 20 juillet 2012
Statut
Membre
Dernière intervention
24 juillet 2012
24 juil. 2012 à 15:04
24 juil. 2012 à 15:04
bon, ça n'a pas marché du 1er coup, le IF n'était pas tout à fait correct, mais c'est enfin réglé !!!
merci pour ton aide
merci pour ton aide