Je travail avec un logiciel d’entreprise pour gérer et planifier mon porte feuille d’affaire. Ce logiciel me donne la possibilité d’exporter au format excel toutes les données des affaires. Dans ce fichier j’ai plein d’informations intéressantes mais dix fois trop.
Concrètement, Je veux créer un fichier ou je serais en mesure d’importer des données excel, mais pas toutes, uniquement certaines colonnes.
Tu énumères les colonnes à supprimer en partant des adresses de colonnes à l'extrême gauche de la feuille comme ceci : Arr = Array("X:X", "L:O", "E:E")
Si tu as des colonnes qui sont adjacentes comme L, M, N, O tu les regroupes comme ceci : "L:O". Tu peux ajouter autant de colonnes que tu désires à la liste...
'------------------------------------------- Sub Test()
Dim Arr(), Elt As Variant Arr = Array("X:X", "L:O", "E:E")
Application.ScreenUpdating = False With Worksheets("Feuil1") ' nom de l'onglet de la feuille à adapter For Each Elt In Arr .Range(Elt).Delete Next End With Application.ScreenUpdating = True
End Sub '-------------------------------------------
MichD ------------------------------------------ "matmar74" a écrit dans le message de groupe de discussion :
h2so4 a écrit le 09/01/2012 à 19h29 :
si tu souhaites de l'aide pour la macro
quelles sont les colonnes que tu veux supprimer ? sur base de quels critères sélectionner les lignes ?
Merci pour ta réponse!
Je n'ai pas le fichier sous la main aujourd'hui mais les colonnes sont fixes, par exemple E,L,M,N,O et X (j'en ai pas mal)
Pour les lignes, j'en ai qui se répètent plusieurs fois pour la meme affaire car dans une colonne les données sont différentes d'une ligne à l'autre. Cette colonne ne m'interresse pas et j'aimerais ne concerver qu'une ligne. Les lignes à concerver sont repérables par une céllule contenant un nombre aléatoire suivi de 001001. Toutes les lignes contenant XXXXXX001001 (dans la colonne "E" par exemple) sont à concerver.
Je ne connais pas les possibilités des macros et ne sais pas si c'est faisable... Peut etre en utilisant la fonction recherche dans le document par une macro... Quand je recherche 001001 il me trouve bien les bonnes cellules.
Bonjour,
Pour supprimer les colonnes en trop...
Tu énumères les colonnes à supprimer en partant des adresses de colonnes à l'extrême gauche
de la feuille comme ceci : Arr = Array("X:X", "L:O", "E:E")
Si tu as des colonnes qui sont adjacentes comme L, M, N, O tu les regroupes
comme ceci : "L:O".
Tu peux ajouter autant de colonnes que tu désires à la liste...
'-------------------------------------------
Sub Test()
Dim Arr(), Elt As Variant
Arr = Array("X:X", "L:O", "E:E")
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' nom de l'onglet de la feuille à adapter
For Each Elt In Arr
.Range(Elt).Delete
Next
End With
Application.ScreenUpdating = True
End Sub
'-------------------------------------------
MichD
------------------------------------------
"matmar74" a écrit dans le message de groupe de discussion : 0Y-dnf35yf282ZHSRVn_vwA@giganews.com...
h2so4 a écrit le 09/01/2012 à 19h29 :
si tu souhaites de l'aide pour la macro
quelles sont les colonnes que tu veux supprimer ?
sur base de quels critères sélectionner les lignes ?
Merci pour ta réponse!
Je n'ai pas le fichier sous la main aujourd'hui mais les colonnes sont fixes,
par exemple E,L,M,N,O et X
(j'en ai pas mal)
Pour les lignes, j'en ai qui se répètent plusieurs fois pour la meme affaire
car dans une colonne les données sont différentes d'une ligne à l'autre. Cette
colonne ne m'interresse pas et j'aimerais ne concerver qu'une ligne.
Les lignes à concerver sont repérables par une céllule contenant un nombre
aléatoire suivi de 001001. Toutes les lignes contenant XXXXXX001001 (dans la
colonne "E" par exemple) sont à concerver.
Je ne connais pas les possibilités des macros et ne sais pas si c'est
faisable... Peut etre en utilisant la fonction recherche dans le document par
une macro... Quand je recherche 001001 il me trouve bien les bonnes cellules.
Tu énumères les colonnes à supprimer en partant des adresses de colonnes à l'extrême gauche de la feuille comme ceci : Arr = Array("X:X", "L:O", "E:E")
Si tu as des colonnes qui sont adjacentes comme L, M, N, O tu les regroupes comme ceci : "L:O". Tu peux ajouter autant de colonnes que tu désires à la liste...
'------------------------------------------- Sub Test()
Dim Arr(), Elt As Variant Arr = Array("X:X", "L:O", "E:E")
Application.ScreenUpdating = False With Worksheets("Feuil1") ' nom de l'onglet de la feuille à adapter For Each Elt In Arr .Range(Elt).Delete Next End With Application.ScreenUpdating = True
End Sub '-------------------------------------------
MichD ------------------------------------------ "matmar74" a écrit dans le message de groupe de discussion :
h2so4 a écrit le 09/01/2012 à 19h29 :
si tu souhaites de l'aide pour la macro
quelles sont les colonnes que tu veux supprimer ? sur base de quels critères sélectionner les lignes ?
Merci pour ta réponse!
Je n'ai pas le fichier sous la main aujourd'hui mais les colonnes sont fixes, par exemple E,L,M,N,O et X (j'en ai pas mal)
Pour les lignes, j'en ai qui se répètent plusieurs fois pour la meme affaire car dans une colonne les données sont différentes d'une ligne à l'autre. Cette colonne ne m'interresse pas et j'aimerais ne concerver qu'une ligne. Les lignes à concerver sont repérables par une céllule contenant un nombre aléatoire suivi de 001001. Toutes les lignes contenant XXXXXX001001 (dans la colonne "E" par exemple) sont à concerver.
Je ne connais pas les possibilités des macros et ne sais pas si c'est faisable... Peut etre en utilisant la fonction recherche dans le document par une macro... Quand je recherche 001001 il me trouve bien les bonnes cellules.
MichD
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de l'extrême droite
MichD ------------------------------------------
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de l'extrême droite
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de l'extrême droite
MichD ------------------------------------------
Merci pour la solution!!
tout a fait j'avais compris ;) Pour les lignes il y a un moyen?
MichD
Si tu connais les lignes à supprimer, il y a ceci.
Tu énumères les lignes à supprimer en partant de la plus basse vers la plus haute. Cette syntaxe "44:55" supprime toutes les lignes comprises entre 44 et 55 inclusivement. Les numéros de lignes en solitaire ne requièrent pas de guillemets.
'---------------------------------------- Sub test() Dim Arr(), Elt As Variant
'Liste des lignes que tu veux supprimer... Arr = Array(100, 89, "44:55", 10)
Application.ScreenUpdating = False With Worksheets("Feuil1") 'Nom de l'onglet de la feuille à adapter For Each Elt In Arr .Rows(Elt).EntireRow.Delete Next End With Application.ScreenUpdating = True End Sub '----------------------------------------
MichD ------------------------------------------ "matmar74" a écrit dans le message de groupe de discussion :
MichD a écrit le 10/01/2012 à 15h18 :
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de l'extrême droite
MichD ------------------------------------------
Merci pour la solution!!
tout a fait j'avais compris ;) Pour les lignes il y a un moyen?
Si tu connais les lignes à supprimer, il y a ceci.
Tu énumères les lignes à supprimer en partant de la plus basse vers la plus haute.
Cette syntaxe "44:55" supprime toutes les lignes comprises entre 44 et 55 inclusivement.
Les numéros de lignes en solitaire ne requièrent pas de guillemets.
'----------------------------------------
Sub test()
Dim Arr(), Elt As Variant
'Liste des lignes que tu veux supprimer...
Arr = Array(100, 89, "44:55", 10)
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom de l'onglet de la feuille à adapter
For Each Elt In Arr
.Rows(Elt).EntireRow.Delete
Next
End With
Application.ScreenUpdating = True
End Sub
'----------------------------------------
MichD
------------------------------------------
"matmar74" a écrit dans le message de groupe de discussion : lcudnRjFaqEPyJHSRVn_vwA@giganews.com...
MichD a écrit le 10/01/2012 à 15h18 :
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de
l'extrême droite
MichD
------------------------------------------
Merci pour la solution!!
tout a fait j'avais compris ;)
Pour les lignes il y a un moyen?
Si tu connais les lignes à supprimer, il y a ceci.
Tu énumères les lignes à supprimer en partant de la plus basse vers la plus haute. Cette syntaxe "44:55" supprime toutes les lignes comprises entre 44 et 55 inclusivement. Les numéros de lignes en solitaire ne requièrent pas de guillemets.
'---------------------------------------- Sub test() Dim Arr(), Elt As Variant
'Liste des lignes que tu veux supprimer... Arr = Array(100, 89, "44:55", 10)
Application.ScreenUpdating = False With Worksheets("Feuil1") 'Nom de l'onglet de la feuille à adapter For Each Elt In Arr .Rows(Elt).EntireRow.Delete Next End With Application.ScreenUpdating = True End Sub '----------------------------------------
MichD ------------------------------------------ "matmar74" a écrit dans le message de groupe de discussion :
MichD a écrit le 10/01/2012 à 15h18 :
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de l'extrême droite
MichD ------------------------------------------
Merci pour la solution!!
tout a fait j'avais compris ;) Pour les lignes il y a un moyen?
matmar74
MichD a écrit le 10/01/2012 à 18h41 :
Si tu connais les lignes à supprimer, il y a ceci.
Tu énumères les lignes à supprimer en partant de la plus basse vers la plus haute. Cette syntaxe "44:55" supprime toutes les lignes comprises entre 44 et 55 inclusivement. Les numéros de lignes en solitaire ne requièrent pas de guillemets.
'---------------------------------------- Sub test() Dim Arr(), Elt As Variant
'Liste des lignes que tu veux supprimer... Arr = Array(100, 89, "44:55", 10)
Application.ScreenUpdating = False With Worksheets("Feuil1") 'Nom de l'onglet de la feuille à adapter For Each Elt In Arr .Rows(Elt).EntireRow.Delete Next End With Application.ScreenUpdating = True End Sub '----------------------------------------
MichD ------------------------------------------ "matmar74" a écrit dans le message de groupe de discussion :
MichD a écrit le 10/01/2012 à 15h18 :
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de l'extrême droite
MichD ------------------------------------------
Merci pour la solution!!
tout a fait j'avais compris ;) Pour les lignes il y a un moyen?
Ok merci bien pour les réponses.
Etant donné la charge de travail actuelle, je n'ai pas eu le temps de tester tout ca mais je garde tres précieusement le post sous la main !!
@ bientot
Mathieu
MichD a écrit le 10/01/2012 à 18h41 :
Si tu connais les lignes à supprimer, il y a ceci.
Tu énumères les lignes à supprimer en partant de la plus
basse vers la plus haute.
Cette syntaxe "44:55" supprime toutes les lignes comprises entre 44
et 55 inclusivement.
Les numéros de lignes en solitaire ne requièrent pas de
guillemets.
'----------------------------------------
Sub test()
Dim Arr(), Elt As Variant
'Liste des lignes que tu veux supprimer...
Arr = Array(100, 89, "44:55", 10)
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom de l'onglet de la feuille à
adapter
For Each Elt In Arr
.Rows(Elt).EntireRow.Delete
Next
End With
Application.ScreenUpdating = True
End Sub
'----------------------------------------
MichD
------------------------------------------
"matmar74" a écrit dans le message de groupe de discussion :
MichD a écrit le 10/01/2012 à 15h18 :
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de
l'extrême droite
MichD
------------------------------------------
Merci pour la solution!!
tout a fait j'avais compris ;)
Pour les lignes il y a un moyen?
Ok merci bien pour les réponses.
Etant donné la charge de travail actuelle, je n'ai pas eu le temps de tester tout ca mais je garde tres précieusement le post sous la main !!
Si tu connais les lignes à supprimer, il y a ceci.
Tu énumères les lignes à supprimer en partant de la plus basse vers la plus haute. Cette syntaxe "44:55" supprime toutes les lignes comprises entre 44 et 55 inclusivement. Les numéros de lignes en solitaire ne requièrent pas de guillemets.
'---------------------------------------- Sub test() Dim Arr(), Elt As Variant
'Liste des lignes que tu veux supprimer... Arr = Array(100, 89, "44:55", 10)
Application.ScreenUpdating = False With Worksheets("Feuil1") 'Nom de l'onglet de la feuille à adapter For Each Elt In Arr .Rows(Elt).EntireRow.Delete Next End With Application.ScreenUpdating = True End Sub '----------------------------------------
MichD ------------------------------------------ "matmar74" a écrit dans le message de groupe de discussion :
MichD a écrit le 10/01/2012 à 15h18 :
| en partant des adresses de colonnes à l'extrême gauche
**** À partir de l'exemple, tu auras compris que je parlais de l'extrême droite
MichD ------------------------------------------
Merci pour la solution!!
tout a fait j'avais compris ;) Pour les lignes il y a un moyen?
Ok merci bien pour les réponses.
Etant donné la charge de travail actuelle, je n'ai pas eu le temps de tester tout ca mais je garde tres précieusement le post sous la main !!