comment définir un range à partir de cellules qui varient?
1 réponse
JF
Bonjour
J'ai un tableau de 38 colonnes.
Je souhaite r=E9cup=E9rer certaines de ces colonnes, les copier/coller
dans une feuille =E0 part, mais dans un ordre diff=E9rent de celui
d'origine (tout =E7a sous vba).
Pour se faire, j'ai d=E9fini un tableau avec en colonne A les libell=E9s
de colonnes dans l'ordre voulu. Et en colonne B, en face de chaque
libell=E9, la colonne correspondante dans le fichier d'origine.
En vba, je souhaite parcourir une par une, les cellules de la colonne
B, et en fonction de la valeur de chaque cellule (A, B,C, D...)
d=E9finir mon range =E0 copier.
Sub XXX()
Dim nomc As String
For n =3D 2 To 72
nomc =3D Sheets("Feuil1").Cells(n, 2).Value
Sheets("GW").Select
Range(nomc, nomc).Select
Selection.Copy
Next n
End Sub
La macro plante avec comme message d'erreur "la m=E9thode Range de
l'Objet Global a =E9chou=E9".
Est-ce que quelqu'un peut m'aider?
A moins qu'il y'ait une solution plus simple, en vba, qui impose un
ordre de copie,ex si j'=E9cris
la macro va coller la colonne D, puis H puis P, sans respecter l'ordre
inscrit dans Range. Est-ce qu'on peut imposer un ordre pour coller les
colonnes?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour JF,
sans savoir exactement l'information contenue dans la variable nomc, tu peut utiliser cette méthode,
exemple si la variable nomc1 = "G:G" nomc2 = "E:E" nomc3 = "A:A"
Set bigRange = Application.Union(Range(nomc1), Range(nomc2), Range(nomc3)) bigRange.Copy
isabelle
Bonjour
J'ai un tableau de 38 colonnes. Je souhaite récupérer certaines de ces colonnes, les copier/coller dans une feuille à part, mais dans un ordre différent de celui d'origine (tout ça sous vba). Pour se faire, j'ai défini un tableau avec en colonne A les libellés de colonnes dans l'ordre voulu. Et en colonne B, en face de chaque libellé, la colonne correspondante dans le fichier d'origine.
En vba, je souhaite parcourir une par une, les cellules de la colonne B, et en fonction de la valeur de chaque cellule (A, B,C, D...) définir mon range à copier.
Sub XXX() Dim nomc As String For n = 2 To 72 nomc = Sheets("Feuil1").Cells(n, 2).Value Sheets("GW").Select Range(nomc, nomc).Select Selection.Copy Next n End Sub
La macro plante avec comme message d'erreur "la méthode Range de l'Objet Global a échoué". Est-ce que quelqu'un peut m'aider?
A moins qu'il y'ait une solution plus simple, en vba, qui impose un ordre de copie,ex si j'écris
la macro va coller la colonne D, puis H puis P, sans respecter l'ordre inscrit dans Range. Est-ce qu'on peut imposer un ordre pour coller les colonnes?
merci
bonjour JF,
sans savoir exactement l'information contenue dans la variable nomc,
tu peut utiliser cette méthode,
exemple si la variable
nomc1 = "G:G"
nomc2 = "E:E"
nomc3 = "A:A"
Set bigRange = Application.Union(Range(nomc1), Range(nomc2), Range(nomc3))
bigRange.Copy
isabelle
Bonjour
J'ai un tableau de 38 colonnes.
Je souhaite récupérer certaines de ces colonnes, les copier/coller
dans une feuille à part, mais dans un ordre différent de celui
d'origine (tout ça sous vba).
Pour se faire, j'ai défini un tableau avec en colonne A les libellés
de colonnes dans l'ordre voulu. Et en colonne B, en face de chaque
libellé, la colonne correspondante dans le fichier d'origine.
En vba, je souhaite parcourir une par une, les cellules de la colonne
B, et en fonction de la valeur de chaque cellule (A, B,C, D...)
définir mon range à copier.
Sub XXX()
Dim nomc As String
For n = 2 To 72
nomc = Sheets("Feuil1").Cells(n, 2).Value
Sheets("GW").Select
Range(nomc, nomc).Select
Selection.Copy
Next n
End Sub
La macro plante avec comme message d'erreur "la méthode Range de
l'Objet Global a échoué".
Est-ce que quelqu'un peut m'aider?
A moins qu'il y'ait une solution plus simple, en vba, qui impose un
ordre de copie,ex si j'écris
la macro va coller la colonne D, puis H puis P, sans respecter l'ordre
inscrit dans Range. Est-ce qu'on peut imposer un ordre pour coller les
colonnes?
sans savoir exactement l'information contenue dans la variable nomc, tu peut utiliser cette méthode,
exemple si la variable nomc1 = "G:G" nomc2 = "E:E" nomc3 = "A:A"
Set bigRange = Application.Union(Range(nomc1), Range(nomc2), Range(nomc3)) bigRange.Copy
isabelle
Bonjour
J'ai un tableau de 38 colonnes. Je souhaite récupérer certaines de ces colonnes, les copier/coller dans une feuille à part, mais dans un ordre différent de celui d'origine (tout ça sous vba). Pour se faire, j'ai défini un tableau avec en colonne A les libellés de colonnes dans l'ordre voulu. Et en colonne B, en face de chaque libellé, la colonne correspondante dans le fichier d'origine.
En vba, je souhaite parcourir une par une, les cellules de la colonne B, et en fonction de la valeur de chaque cellule (A, B,C, D...) définir mon range à copier.
Sub XXX() Dim nomc As String For n = 2 To 72 nomc = Sheets("Feuil1").Cells(n, 2).Value Sheets("GW").Select Range(nomc, nomc).Select Selection.Copy Next n End Sub
La macro plante avec comme message d'erreur "la méthode Range de l'Objet Global a échoué". Est-ce que quelqu'un peut m'aider?
A moins qu'il y'ait une solution plus simple, en vba, qui impose un ordre de copie,ex si j'écris
la macro va coller la colonne D, puis H puis P, sans respecter l'ordre inscrit dans Range. Est-ce qu'on peut imposer un ordre pour coller les colonnes?