Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse, tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macro
n'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille 2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31
puis appuyer sur échap avant de relancer ma macro, sous peine de voir mes
30
lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
ai
plus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien motivé
pour progresser parmi vous.
Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse, tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macro
n'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille 2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31
puis appuyer sur échap avant de relancer ma macro, sous peine de voir mes
30
lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
ai
plus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien motivé
pour progresser parmi vous.
Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse, tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macro
n'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille 2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31
puis appuyer sur échap avant de relancer ma macro, sous peine de voir mes
30
lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
ai
plus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien motivé
pour progresser parmi vous.
Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse, tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macro
n'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille 2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31
puis appuyer sur échap avant de relancer ma macro, sous peine de voir mes
30
lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
ai
plus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien motivé
pour progresser parmi vous.
Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse, tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macro
n'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille 2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31
puis appuyer sur échap avant de relancer ma macro, sous peine de voir mes
30
lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
ai
plus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien motivé
pour progresser parmi vous.
Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse, tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macro
n'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille 2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31
puis appuyer sur échap avant de relancer ma macro, sous peine de voir mes
30
lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
ai
plus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien motivé
pour progresser parmi vous.
Si j'ai bien compris ton but est d'extraire toutes les lignes 1, 11, 21,
31
....., 33401 de la feuille 1 vers la feuille 2.
Je pense donc qu'il serait plus judicieux dans ton algorithme de copier
ces
lignes et de les coller dans la feuille 2, ce qui serait plus rapide...
Sub copy()
Dim rangeToCopy As String
Dim i As Long
rangeToCopy = "1:1"
For i = 11 To 33401 Step 10
rangeToCopy = rangeToCopy & "," & i & ":" & i
Next i
Sheets(1).Select
Range(rangeToCopy).copy
Sheets(2).Select
Range("A1").Select
ActiveSheet.Paste
End Sub
"Hervé Frank-Dangel" wrote in message
news:%Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse,
tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente
lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment
sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la
feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macron'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille
2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31puis appuyer sur échap avant de relancer ma macro, sous peine de voir
mes
30lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
aiplus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en
plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien
motivé
pour progresser parmi vous.
Si j'ai bien compris ton but est d'extraire toutes les lignes 1, 11, 21,
31
....., 33401 de la feuille 1 vers la feuille 2.
Je pense donc qu'il serait plus judicieux dans ton algorithme de copier
ces
lignes et de les coller dans la feuille 2, ce qui serait plus rapide...
Sub copy()
Dim rangeToCopy As String
Dim i As Long
rangeToCopy = "1:1"
For i = 11 To 33401 Step 10
rangeToCopy = rangeToCopy & "," & i & ":" & i
Next i
Sheets(1).Select
Range(rangeToCopy).copy
Sheets(2).Select
Range("A1").Select
ActiveSheet.Paste
End Sub
"Hervé Frank-Dangel" <nospam-hfrankdangel@frog-sa.com> wrote in message
news:%236jJw8sUEHA.2580@TK2MSFTNGP12.phx.gbl...
Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse,
tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente
lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment
sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la
feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macro
n'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille
2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31
puis appuyer sur échap avant de relancer ma macro, sous peine de voir
mes
30
lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
ai
plus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en
plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien
motivé
pour progresser parmi vous.
Si j'ai bien compris ton but est d'extraire toutes les lignes 1, 11, 21,
31
....., 33401 de la feuille 1 vers la feuille 2.
Je pense donc qu'il serait plus judicieux dans ton algorithme de copier
ces
lignes et de les coller dans la feuille 2, ce qui serait plus rapide...
Sub copy()
Dim rangeToCopy As String
Dim i As Long
rangeToCopy = "1:1"
For i = 11 To 33401 Step 10
rangeToCopy = rangeToCopy & "," & i & ":" & i
Next i
Sheets(1).Select
Range(rangeToCopy).copy
Sheets(2).Select
Range("A1").Select
ActiveSheet.Paste
End Sub
"Hervé Frank-Dangel" wrote in message
news:%Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse,
tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente
lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment
sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la
feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macron'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille
2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31puis appuyer sur échap avant de relancer ma macro, sous peine de voir
mes
30lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
aiplus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en
plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien
motivé
pour progresser parmi vous.
Si j'ai bien compris ton but est d'extraire toutes les lignes 1, 11, 21,
31
....., 33401 de la feuille 1 vers la feuille 2.
Je pense donc qu'il serait plus judicieux dans ton algorithme de copier
ces
lignes et de les coller dans la feuille 2, ce qui serait plus rapide...
Sub copy()
Dim rangeToCopy As String
Dim i As Long
rangeToCopy = "1:1"
For i = 11 To 33401 Step 10
rangeToCopy = rangeToCopy & "," & i & ":" & i
Next i
Sheets(1).Select
Range(rangeToCopy).copy
Sheets(2).Select
Range("A1").Select
ActiveSheet.Paste
End Sub
"Hervé Frank-Dangel" wrote in message
news:%Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse,
tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente
lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment
sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la
feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macron'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille
2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31puis appuyer sur échap avant de relancer ma macro, sous peine de voir
mes
30lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
aiplus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en
plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien
motivé
pour progresser parmi vous.
Si j'ai bien compris ton but est d'extraire toutes les lignes 1, 11, 21,
31
....., 33401 de la feuille 1 vers la feuille 2.
Je pense donc qu'il serait plus judicieux dans ton algorithme de copier
ces
lignes et de les coller dans la feuille 2, ce qui serait plus rapide...
Sub copy()
Dim rangeToCopy As String
Dim i As Long
rangeToCopy = "1:1"
For i = 11 To 33401 Step 10
rangeToCopy = rangeToCopy & "," & i & ":" & i
Next i
Sheets(1).Select
Range(rangeToCopy).copy
Sheets(2).Select
Range("A1").Select
ActiveSheet.Paste
End Sub
"Hervé Frank-Dangel" <nospam-hfrankdangel@frog-sa.com> wrote in message
news:%236jJw8sUEHA.2580@TK2MSFTNGP12.phx.gbl...
Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse,
tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente
lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment
sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la
feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macro
n'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille
2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31
puis appuyer sur échap avant de relancer ma macro, sous peine de voir
mes
30
lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
ai
plus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en
plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien
motivé
pour progresser parmi vous.
Si j'ai bien compris ton but est d'extraire toutes les lignes 1, 11, 21,
31
....., 33401 de la feuille 1 vers la feuille 2.
Je pense donc qu'il serait plus judicieux dans ton algorithme de copier
ces
lignes et de les coller dans la feuille 2, ce qui serait plus rapide...
Sub copy()
Dim rangeToCopy As String
Dim i As Long
rangeToCopy = "1:1"
For i = 11 To 33401 Step 10
rangeToCopy = rangeToCopy & "," & i & ":" & i
Next i
Sheets(1).Select
Range(rangeToCopy).copy
Sheets(2).Select
Range("A1").Select
ActiveSheet.Paste
End Sub
"Hervé Frank-Dangel" wrote in message
news:%Bonjour à tous,
Voila, je suis actuellement en stage dans une entreprise, et pour des
besoins professionnel, j'ai du constituer une base de donnée de fichier
client de 33 405 entreprises avec dans chaque colonne : nom, adresse,
tel,
fax ......
Mon but est d'extraire 10% de cette base de donnée
pour ce faire, j'ai déjà commencé a tapé ma macro,
elle fonctionne ainsi:
1) je suis dans ma feuille 1, avec les 33 405 entreprises
2) les lignes 2 à 10, 12 à 20 , 22 à 30....([color=blue]il y'a "trente
paquets") [/color]sont sélectionnés
(ce qui laisse les lignes 1 , 11, 21....([color=blue]il y'a trente
lignes)
[/color]en blanc (pas en surbrillance)
3) ma sélection est supprimer
4) les lignes 1, 11 , 21......... n'étant pas précédemment
sélectionnées,
après la suppression, remonte et se transforme en lignes 1, 2 , 3....30
5)ces 30 nouvelles lignes sont sélectionnées, puis copier dans la
feuille
2,puis enfin supprimer de la feuille 1
tout me va très bien jusqu'ici, mais je me heurte à un problème, et ma
macron'est pas totalement automatisé:
-une fois ma macro lancer, je me retrouve donc à la fin dans la feuille
2,
avec mes lignes 1 a 30 sélectionnées, je dois alors cliquer sur la casse
A31puis appuyer sur échap avant de relancer ma macro, sous peine de voir
mes
30lignes disparaître et être remplacé par de nouvelles
le but est donc de faire tourner la macro en boucle jusqu'a ce qu'il n'y
aiplus d'entreprise dans la feuille1 mais que chaque sélection de 30
entreprises se colle l'une à la suite de l'autre dans feuille 2
Je ne sais pas comment faire pour "Looper" ma macro, qu'elle détecte les
champs vides, et qu'elle colle mes sélections avec une incrémentation de
A31, A61, A91 etc......
Voici ma macro:
Sub Macro1 ()
Range("2:10,12:20,22:30,32:40 (......)
282:290,292:300").Select
Selection.Delete Shift:=xlup
Rows("1:30").Select
Selection.copy
Sheets("feuil2").select
Activesheet.Paste
Sheets("Feuil1").select
Selection.Delete Shift:=xlUp
Range("A1").select
Sheets("Feuil2").select
Selection.copy
End Sub
Merci de vos réponse, elles me feront gagner un temps précieux, et en
plus
cette expérience m'a permis de m'intéresser à VBA, et je suis bien
motivé
pour progresser parmi vous.