Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de la valeur d'une cellule pour définir une plage à copier

4 réponses
Avatar
Juliette.Frehel
Bonjour

Je ne suis pas une sp=E9cialiste de macros, et c'est que j'ai faite bug
en permanence sur Columns(col, col).
Est-ce que quelqu'un peut me dire pourquoi et quelle est la correction
=E0 apporter.

Pour info, la macro est cens=E9e chercher une valeur dans un tableau
(A,B,C...), cette valeur servant =E0 d=E9finir une colonne =E0 copier dans
un autre fichier.

For n =3D 2 To 72
col =3D Sheets("Feuil1").Cells(n, 5).Value
Worksheets("GW").Select
Columns(col, col).Select
Selection.copy

J'ai essay=E9 de remplacer Columns par un Range mais =E7a plante aussi.
Comment faire pour r=E9cup=E9rer la valeur d'une cellule et l'utiliser
pour d=E9finir une plage =E0 copier?

merci

4 réponses

Avatar
Yvan
Bonjour Juliette

For n = 2 To 72
col = Sheets("Feuil1").Cells(n, 5).Value
Worksheets("GW").Select
Columns(col).Select
Selection.copy
next n

devrait fonctionner, et plus simplement:

For n = 2 To 72
col = Sheets("Feuil1").Cells(n, 5).Value
Worksheets("GW").Columns(col).copy
next n


(un seul col dans columns(col)). col doit être un entier bien sûr.


@+

Yvan


a écrit dans le message de news:

Bonjour

Je ne suis pas une spécialiste de macros, et c'est que j'ai faite bug
en permanence sur Columns(col, col).
Est-ce que quelqu'un peut me dire pourquoi et quelle est la correction
à apporter.

Pour info, la macro est censée chercher une valeur dans un tableau
(A,B,C...), cette valeur servant à définir une colonne à copier dans
un autre fichier.

For n = 2 To 72
col = Sheets("Feuil1").Cells(n, 5).Value
Worksheets("GW").Select
Columns(col, col).Select
Selection.copy

J'ai essayé de remplacer Columns par un Range mais ça plante aussi.
Comment faire pour récupérer la valeur d'une cellule et l'utiliser
pour définir une plage à copier?

merci
Avatar
anonymousA
bonjour,

For n = 2 To 72
Worksheets("GW").Cells(1, Sheets("Feuil1").Cells(n,
5).Value).EntireColumn.copy
next

A+
Avatar
michdenis
Bonjour Juliette,

Il manque quelques précisions pour pouvoir te proposer une solution plus complète à ta problématique.

A )
Dans ta boucle, comme ta variable "Col" représente un peu plus loin la colonne que tu veux sélectionner, tu dois t'assurer que Col
représente une valeur entre 1 et 256. Si ta cellule Cells(n, 5) est vide, la procédure va planter car columns(col) si col est vide
ou égale à zéro est impossible à résoudre pour excel.

B ) Columns(Col).Select -> suffisant pour sélectionner la totalité de la colonne.

For n = 2 To 72
col = Sheets("Feuil1").Cells(n, 5).Value
Worksheets("GW").Select
Columns(col, col).Select
Selection.copy


Salutations!




a écrit dans le message de news:
Bonjour

Je ne suis pas une spécialiste de macros, et c'est que j'ai faite bug
en permanence sur Columns(col, col).
Est-ce que quelqu'un peut me dire pourquoi et quelle est la correction
à apporter.

Pour info, la macro est censée chercher une valeur dans un tableau
(A,B,C...), cette valeur servant à définir une colonne à copier dans
un autre fichier.

For n = 2 To 72
col = Sheets("Feuil1").Cells(n, 5).Value
Worksheets("GW").Select
Columns(col, col).Select
Selection.copy

J'ai essayé de remplacer Columns par un Range mais ça plante aussi.
Comment faire pour récupérer la valeur d'une cellule et l'utiliser
pour définir une plage à copier?

merci
Avatar
JF
avec un peu de retard, merci à tous



michdenis wrote:
Bonjour Juliette,

Il manque quelques précisions pour pouvoir te proposer une solution plu s complète à ta problématique.

A )
Dans ta boucle, comme ta variable "Col" représente un peu plus loin la colonne que tu veux sélectionner, tu dois t'assurer que Col
représente une valeur entre 1 et 256. Si ta cellule Cells(n, 5) est vi de, la procédure va planter car columns(col) si col est vide
ou égale à zéro est impossible à résoudre pour excel.

B ) Columns(Col).Select -> suffisant pour sélectionner la totalité de la colonne.

For n = 2 To 72
col = Sheets("Feuil1").Cells(n, 5).Value
Worksheets("GW").Select
Columns(col, col).Select
Selection.copy


Salutations!




a écrit dans le message de news: 112677372
Bonjour

Je ne suis pas une spécialiste de macros, et c'est que j'ai faite bug
en permanence sur Columns(col, col).
Est-ce que quelqu'un peut me dire pourquoi et quelle est la correction
à apporter.

Pour info, la macro est censée chercher une valeur dans un tableau
(A,B,C...), cette valeur servant à définir une colonne à copier dans
un autre fichier.

For n = 2 To 72
col = Sheets("Feuil1").Cells(n, 5).Value
Worksheets("GW").Select
Columns(col, col).Select
Selection.copy

J'ai essayé de remplacer Columns par un Range mais ça plante aussi.
Comment faire pour récupérer la valeur d'une cellule et l'utiliser
pour définir une plage à copier?

merci