OVH Cloud OVH Cloud

macro

20 réponses
Avatar
michele
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50 de la feuil1 par
exemple, dans la feuil2, mais je souhaite changer l'emplacement de la zone
de destination en fonction d'une valeur contenue dans la cellule A1 : si A1
= 1 je souhaite que le collage spécial des valeurs se fasse en M1, si A1 = 2
je souhaite que le collage spécial se fasse en N1, etc......
Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle

10 réponses

1 2
Avatar
Chris Michel
Bonjour,

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

if test=1 then

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.



Avatar
Chris Michel
Désolé pour le Bug! De toute façon, je répondais à côté de
la plaque!

sub collage_perso()

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

cells(1,12+test).select

Selection.PasteSpecial Paste:=xlValues

end sub

Chris.

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.



Avatar
Michèle BONDIL
Bonsoir,

;-((((( ça marche pas.
J'ai un message : erreur d'exécution 13 Incompatibilité de type
Le débogueur surligne la ligne test=[A1]
Une solution ?
Merci d'avance

Michèle

"Chris Michel" a écrit dans le
message de news: 8c6f01c3ea50$92aa8d80$
Désolé pour le Bug! De toute façon, je répondais à côté de
la plaque!

sub collage_perso()

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

cells(1,12+test).select

Selection.PasteSpecial Paste:=xlValues

end sub

Chris.

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.



Avatar
Frédéric Sigonneau
Bonsoir,

En supposant que la plage à copier soit dans une feuille nommée Feuil1, une
solution possible :

Sub test()
With Sheets("Feuil2")
.Range(.Cells(1, 12 + Sheets("Feuil1").Range("A1").Value), _
.Cells(49, 13 + Sheets("Feuil1").Range("A1").Value)).Value = _
Sheets("Feuil1").Range("A2:B50").Value
End With
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

Je fais une macro automatique pour copier la zone A2:B50 de la feuil1 par
exemple, dans la feuil2, mais je souhaite changer l'emplacement de la zone
de destination en fonction d'une valeur contenue dans la cellule A1 : si A1
= 1 je souhaite que le collage spécial des valeurs se fasse en M1, si A1 = 2
je souhaite que le collage spécial se fasse en N1, etc......
Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


Avatar
Clément Marcotte
Bonsoir,

Pour une raison ou pour une autre, la cellule a1 ne contient pas un
entier.
Essaie avec:

dim test as variant



"Michèle BONDIL" a écrit dans le
message de news:%
Bonsoir,

;-((((( ça marche pas.
J'ai un message : erreur d'exécution 13 Incompatibilité de type
Le débogueur surligne la ligne test=[A1]
Une solution ?
Merci d'avance

Michèle

"Chris Michel" a écrit dans
le

message de news: 8c6f01c3ea50$92aa8d80$
Désolé pour le Bug! De toute façon, je répondais à côté de
la plaque!

sub collage_perso()

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

cells(1,12+test).select

Selection.PasteSpecial Paste:=xlValues

end sub

Chris.

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.








Avatar
Michèle
Bonsoir,

S U P E R , ça marche.
Si je peux abuser de ta bonté, peux-tu m'expliquer ce que signifie cette
ligne :
Cells(1, 12 + test).Select
car la copie se fait bien sur la feuille 2 mais sur la colonne Q alors que
je souhaiterais que la première copie se fasse sur la colonne A. Ensuite
tout se passe bien.
"Clément Marcotte" a écrit dans le message
de news: #
Bonsoir,

Pour une raison ou pour une autre, la cellule a1 ne contient pas un
entier.
Essaie avec:

dim test as variant



"Michèle BONDIL" a écrit dans le
message de news:%
Bonsoir,

;-((((( ça marche pas.
J'ai un message : erreur d'exécution 13 Incompatibilité de type
Le débogueur surligne la ligne test=[A1]
Une solution ?
Merci d'avance

Michèle

"Chris Michel" a écrit dans
le

message de news: 8c6f01c3ea50$92aa8d80$
Désolé pour le Bug! De toute façon, je répondais à côté de
la plaque!

sub collage_perso()

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

cells(1,12+test).select

Selection.PasteSpecial Paste:=xlValues

end sub

Chris.

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.











Avatar
Michèle
Bonsoir,

S U P E R , ça marche !!!!!
Si je peux abuser de ta bonté, peux-tu m'expliquer ce que signifie cette
ligne :
Cells(1, 12 + test).Select
et surtout que veux dire le 1 après cells. Pour le reste, j'ai compris.
Une débutante en VBA reconnaissante ;-)))

Michèle

"Clément Marcotte" a écrit dans le
message
de news: #
Bonsoir,

Pour une raison ou pour une autre, la cellule a1 ne contient pas un
entier.
Essaie avec:

dim test as variant



"Michèle BONDIL" a écrit dans le
message de news:%
Bonsoir,

;-((((( ça marche pas.
J'ai un message : erreur d'exécution 13 Incompatibilité de type
Le débogueur surligne la ligne test=[A1]
Une solution ?
Merci d'avance

Michèle

"Chris Michel" a écrit dans
le

message de news: 8c6f01c3ea50$92aa8d80$
Désolé pour le Bug! De toute façon, je répondais à côté de
la plaque!

sub collage_perso()

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

cells(1,12+test).select

Selection.PasteSpecial Paste:=xlValues

end sub

Chris.

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.











Avatar
Michèle
Bonsoir,

S U P E R , ça marche !!!!!
Si je peux abuser de ta bonté, peux-tu m'expliquer ce que signifie cette
ligne :
Cells(1, 12 + test).Select
et surtout que veux dire le 1 après cells. Pour le reste, j'ai compris.
Une débutante en VBA reconnaissante ;-)))

Michèle

"Clément Marcotte" a écrit dans le
message
de news: #
Bonsoir,

Pour une raison ou pour une autre, la cellule a1 ne contient pas un
entier.
Essaie avec:

dim test as variant



"Michèle BONDIL" a écrit dans le
message de news:%
Bonsoir,

;-((((( ça marche pas.
J'ai un message : erreur d'exécution 13 Incompatibilité de type
Le débogueur surligne la ligne test=[A1]
Une solution ?
Merci d'avance

Michèle

"Chris Michel" a écrit dans
le

message de news: 8c6f01c3ea50$92aa8d80$
Désolé pour le Bug! De toute façon, je répondais à côté de
la plaque!

sub collage_perso()

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

cells(1,12+test).select

Selection.PasteSpecial Paste:=xlValues

end sub

Chris.

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.











Avatar
sabatier
bonjour michèle
le 1 après Cells signifie la 1ère ligne et le 12 la douzième colonne....
ist das klar genau nun?
aws
jps

Michèle a écrit:
Bonsoir,

S U P E R , ça marche !!!!!
Si je peux abuser de ta bonté, peux-tu m'expliquer ce que signifie cette
ligne :
Cells(1, 12 + test).Select
et surtout que veux dire le 1 après cells. Pour le reste, j'ai compris.
Une débutante en VBA reconnaissante ;-)))

Michèle

"Clément Marcotte" a écrit dans le
message
de news: #
Bonsoir,

Pour une raison ou pour une autre, la cellule a1 ne contient pas un
entier.
Essaie avec:

dim test as variant



"Michèle BONDIL" a écrit dans le
message de news:%
Bonsoir,

;-((((( ça marche pas.
J'ai un message : erreur d'exécution 13 Incompatibilité de type
Le débogueur surligne la ligne test=[A1]
Une solution ?
Merci d'avance

Michèle

"Chris Michel" a écrit dans
le

message de news: 8c6f01c3ea50$92aa8d80$
Désolé pour le Bug! De toute façon, je répondais à côté de
la plaque!

sub collage_perso()

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

cells(1,12+test).select

Selection.PasteSpecial Paste:=xlValues

end sub

Chris.

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.


















Avatar
michdenis
Bonjoir Michèle,

Je n'ai pas vu l'intégralité de la procédure mais dans cette ligne de code :

Cells(1, 12 + test).Select

Pour qu'elle puisse s'exécuter correctement, "Test" est probablement une variable à laquelle on lui a attribué une valeur. Si
aucune valeur n'a été attribué à la variable, cette dernière doit avoir la valeur 0

Si tu considérait une feuille excel comme un grand tableau, l'objet "Cells" Représente toutes les cellules d'une feuille
excel. Pour pouvoir en désigne une en particulier, l'objet "Cells" utilise des coordonnées : Lignes et Colonnes (Cells(ligne,
Colonne)).

Dans ton exemple : Cells(1,12)
1 = Cellules de la ligne 1
12 = Cellules de la douzième colonne

Donc Cells(1,12) représente la cellule à l'intersection de la ligne 1 et de la colonne 12 .

Si "Test" a une valeur définie, exemple : Test = 5

Cells(1, 12 + test) = Cells(1, 12 +5) = Cells(1, 17)


Salutations!


"Michèle" a écrit dans le message de news:
Bonsoir,

S U P E R , ça marche !!!!!
Si je peux abuser de ta bonté, peux-tu m'expliquer ce que signifie cette
ligne :
Cells(1, 12 + test).Select
et surtout que veux dire le 1 après cells. Pour le reste, j'ai compris.
Une débutante en VBA reconnaissante ;-)))

Michèle

"Clément Marcotte" a écrit dans le
message
de news: #
Bonsoir,

Pour une raison ou pour une autre, la cellule a1 ne contient pas un
entier.
Essaie avec:

dim test as variant



"Michèle BONDIL" a écrit dans le
message de news:%
Bonsoir,

;-((((( ça marche pas.
J'ai un message : erreur d'exécution 13 Incompatibilité de type
Le débogueur surligne la ligne test=[A1]
Une solution ?
Merci d'avance

Michèle

"Chris Michel" a écrit dans
le

message de news: 8c6f01c3ea50$92aa8d80$
Désolé pour le Bug! De toute façon, je répondais à côté de
la plaque!

sub collage_perso()

dim test as integer

test=[A1]

range("A2:B50").copy

sheets("feuil2").select

cells(1,12+test).select

Selection.PasteSpecial Paste:=xlValues

end sub

Chris.

-----Message d'origine-----
Bonjour,

Je fais une macro automatique pour copier la zone A2:B50
de la feuil1 par

exemple, dans la feuil2, mais je souhaite changer
l'emplacement de la zone

de destination en fonction d'une valeur contenue dans la
cellule A1 : si A1

= 1 je souhaite que le collage spécial des valeurs se
fasse en M1, si A1 = 2

je souhaite que le collage spécial se fasse en N1,
etc......

Quelle ligne rajouter pour cela ?
Merci
Cordialement

Michèle


.











1 2