OVH Cloud OVH Cloud

Insérer une palge de cellules définies...etc... en VBA

6 réponses
Avatar
géjoun.
Bonjour,

J'ai fait des recherches dans les archives, j'ai trouvé des bouts de
réponses, mais j'arrive pas à les coller entre eux :-(
Voila ce que je cherche à faire...

Dans un tableau, j'ai la plage de cellules A7:R8 (sur 2 lignes) qui
correspond à une seule ligne de mon tableau à l'impression; et bien entendu
chaque cellules de cette plage est bourrée de formules.

Je dois souvent copier/coller cette plage 'type' pour rajouter des lignes à
mon tableau, et dans ce cas, ça me copie aussi les valeurs qui sont dans les
cases que je copie (je sélectionne ma plage de cellules \ copier \ insérer
les cellules copiées); donc, maintenant je cherche à simplifier ça avec une
macro que j'affecterai à un bouton, et en cliquant sur ce bouton, me ferait
toutes ces opérations d'un coup, c'est à dire, une fois que je me serai
possitionnais dans la cellule ou insérer mes lignes (A7, A9, A11...etc...):

- copier la plage A7:R8
- insérer les cellules copiées, mais en faisant un collage spécial pour
n'avoir que les formules (et non les valeurs)
- et automatiquement, sans me demander, que ça m'insère tout ça en décalant
les cellules vers le bas

Et autant de fois je clique, autant de fois ça m'insère de lignes....

Ca vous parait compliqué à réaliser ça?

Merci!

--
__________________________
Géjoun.
dam-mail2004@ifrance.com
····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

6 réponses

Avatar
isabelle
bonjour Géjoun,

Range("A7:R8").Copy
Range("A9:R10").Insert Shift:=xlDown
Application.CutCopyMode = False

isabelle


Bonjour,

J'ai fait des recherches dans les archives, j'ai trouvé des bouts de
réponses, mais j'arrive pas à les coller entre eux :-(
Voila ce que je cherche à faire...

Dans un tableau, j'ai la plage de cellules A7:R8 (sur 2 lignes) qui
correspond à une seule ligne de mon tableau à l'impression; et bien entendu
chaque cellules de cette plage est bourrée de formules.

Je dois souvent copier/coller cette plage 'type' pour rajouter des lignes à
mon tableau, et dans ce cas, ça me copie aussi les valeurs qui sont dans les
cases que je copie (je sélectionne ma plage de cellules copier insérer
les cellules copiées); donc, maintenant je cherche à simplifier ça avec une
macro que j'affecterai à un bouton, et en cliquant sur ce bouton, me ferait
toutes ces opérations d'un coup, c'est à dire, une fois que je me serai
possitionnais dans la cellule ou insérer mes lignes (A7, A9, A11...etc...):

- copier la plage A7:R8
- insérer les cellules copiées, mais en faisant un collage spécial pour
n'avoir que les formules (et non les valeurs)
- et automatiquement, sans me demander, que ça m'insère tout ça en décalant
les cellules vers le bas

Et autant de fois je clique, autant de fois ça m'insère de lignes....

Ca vous parait compliqué à réaliser ça?

Merci!

--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Avatar
géjoun.
Récemment, isabelle nous a expliqué:

Et moi qui m'attendais à une macro de 200 lignes! :o)
Merci Isabelle!

Par contre, existe t-il un moyen pour que les 2 lignes gardent bien aprés la
copie leurs formats initiaux (la 1ère ligne à une hauteur de 6.75 et la 2ème
de 9).

Merci!

--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯



|| bonjour Géjoun,
||
|| Range("A7:R8").Copy
|| Range("A9:R10").Insert Shift:=xlDown
|| Application.CutCopyMode = False
||
|| isabelle
||
|||
||| Bonjour,
|||
||| J'ai fait des recherches dans les archives, j'ai trouvé des bouts de
||| réponses, mais j'arrive pas à les coller entre eux :-(
||| Voila ce que je cherche à faire...
|||
||| Dans un tableau, j'ai la plage de cellules A7:R8 (sur 2 lignes) qui
||| correspond à une seule ligne de mon tableau à l'impression; et bien
||| entendu chaque cellules de cette plage est bourrée de formules.
|||
||| Je dois souvent copier/coller cette plage 'type' pour rajouter des
||| lignes à mon tableau, et dans ce cas, ça me copie aussi les valeurs
||| qui sont dans les cases que je copie (je sélectionne ma plage de
||| cellules copier insérer les cellules copiées); donc, maintenant
||| je cherche à simplifier ça avec une macro que j'affecterai à un
||| bouton, et en cliquant sur ce bouton, me ferait toutes ces
||| opérations d'un coup, c'est à dire, une fois que je me serai
||| possitionnais dans la cellule ou insérer mes lignes (A7, A9,
||| A11...etc...):
|||
||| - copier la plage A7:R8
||| - insérer les cellules copiées, mais en faisant un collage spécial
||| pour n'avoir que les formules (et non les valeurs)
||| - et automatiquement, sans me demander, que ça m'insère tout ça en
||| décalant les cellules vers le bas
|||
||| Et autant de fois je clique, autant de fois ça m'insère de
||| lignes....
|||
||| Ca vous parait compliqué à réaliser ça?
|||
||| Merci!
|||
||| --
||| __________________________
||| Géjoun.
|||
||| ····················································
||| Enlevez l'année pour répondre...
||| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Avatar
isabelle
oui, il faut ajouter c'est deux lignes
Rows(9).RowHeight = 6.75
Rows(10).RowHeight = 9

isabelle


Récemment, isabelle nous a expliqué:

Et moi qui m'attendais à une macro de 200 lignes! :o)
Merci Isabelle!

Par contre, existe t-il un moyen pour que les 2 lignes gardent bien aprés la
copie leurs formats initiaux (la 1ère ligne à une hauteur de 6.75 et la 2ème
de 9).

Merci!

--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

|| bonjour Géjoun,
||
|| Range("A7:R8").Copy
|| Range("A9:R10").Insert Shift:=xlDown
|| Application.CutCopyMode = False
||
|| isabelle
||
|||
||| Bonjour,
|||
||| J'ai fait des recherches dans les archives, j'ai trouvé des bouts de
||| réponses, mais j'arrive pas à les coller entre eux :-(
||| Voila ce que je cherche à faire...
|||
||| Dans un tableau, j'ai la plage de cellules A7:R8 (sur 2 lignes) qui
||| correspond à une seule ligne de mon tableau à l'impression; et bien
||| entendu chaque cellules de cette plage est bourrée de formules.
|||
||| Je dois souvent copier/coller cette plage 'type' pour rajouter des
||| lignes à mon tableau, et dans ce cas, ça me copie aussi les valeurs
||| qui sont dans les cases que je copie (je sélectionne ma plage de
||| cellules copier insérer les cellules copiées); donc, maintenant
||| je cherche à simplifier ça avec une macro que j'affecterai à un
||| bouton, et en cliquant sur ce bouton, me ferait toutes ces
||| opérations d'un coup, c'est à dire, une fois que je me serai
||| possitionnais dans la cellule ou insérer mes lignes (A7, A9,
||| A11...etc...):
|||
||| - copier la plage A7:R8
||| - insérer les cellules copiées, mais en faisant un collage spécial
||| pour n'avoir que les formules (et non les valeurs)
||| - et automatiquement, sans me demander, que ça m'insère tout ça en
||| décalant les cellules vers le bas
|||
||| Et autant de fois je clique, autant de fois ça m'insère de
||| lignes....
|||
||| Ca vous parait compliqué à réaliser ça?
|||
||| Merci!
|||
||| --
||| __________________________
||| Géjoun.
|||
||| ····················································
||| Enlevez l'année pour répondre...
||| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Avatar
géjoun.
Récemment, isabelle nous a expliqué:

Bon, apparement, ya quand même un petit truc qui me va pas la dedans, ou
j'ai fait une bourde...

Déja, j'arrive pas à garder la hauteur de mes lignes constantes quand j'en
insère : dans mon tableau, et dessous des lignes que je complète (qui vont
jusqu'à la ligne 92, j'ai d'autres lignes qui n'ont pas la même hauteur (ou
se calculent les totaux), et dés que j'insère des lignes avec la macro, au
delà de la ligne 92, ça me change leurs hauteurs (et les nouvelles hauteurs
ne correspondent même pas aux hauteurs des lignes se trouvant avant en
93,94... (je suis clair là?). Est ce que ça ne viendrait pas du fait que
j'ai mal placé les 2 dernières lignes concernat la hauteur dans la macro?

De plus, j'ai remarqué que quand j'insère des lignes, elle s'insère toujours
à partir de la cellule A9, alors que je voudrais que la ligne s'insère a
partir de la cellule active dans laquelle je me trouve (ex: si je me place
en A45, la ligne s'insère en dessous).

Je sais, je suis compliqué pour quelqu'un qui y connait pas grand chose,
mais c'est pas faute de chercher pourtant....

Un grand merci!

--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


|| oui, il faut ajouter c'est deux lignes
|| Rows(9).RowHeight = 6.75
|| Rows(10).RowHeight = 9
||
|| isabelle
Avatar
isabelle
bonjour féjoun,

est ce que comme ça, ça va mieux ?

x = ActiveCell.Row
Range("A7:R8").Copy
Range("A" & x & ":R" & x + 1).Insert Shift:=xlDown
Application.CutCopyMode = False
Rows(x).RowHeight = 6.75
Rows(x + 1).RowHeight = 9

isabelle


Récemment, isabelle nous a expliqué:

Bon, apparement, ya quand même un petit truc qui me va pas la dedans, ou
j'ai fait une bourde...

Déja, j'arrive pas à garder la hauteur de mes lignes constantes quand j'en
insère : dans mon tableau, et dessous des lignes que je complète (qui vont
jusqu'à la ligne 92, j'ai d'autres lignes qui n'ont pas la même hauteur (ou
se calculent les totaux), et dés que j'insère des lignes avec la macro, au
delà de la ligne 92, ça me change leurs hauteurs (et les nouvelles hauteurs
ne correspondent même pas aux hauteurs des lignes se trouvant avant en
93,94... (je suis clair là?). Est ce que ça ne viendrait pas du fait que
j'ai mal placé les 2 dernières lignes concernat la hauteur dans la macro?

De plus, j'ai remarqué que quand j'insère des lignes, elle s'insère toujours
à partir de la cellule A9, alors que je voudrais que la ligne s'insère a
partir de la cellule active dans laquelle je me trouve (ex: si je me place
en A45, la ligne s'insère en dessous).

Je sais, je suis compliqué pour quelqu'un qui y connait pas grand chose,
mais c'est pas faute de chercher pourtant....

Un grand merci!

--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

|| oui, il faut ajouter c'est deux lignes
|| Rows(9).RowHeight = 6.75
|| Rows(10).RowHeight = 9
||
|| isabelle


Avatar
géjoun.
De ces petits doigts, isabelle [] a tapoté:

Ah oui, c'est beaucoup beaucoup mieux! :o)
Sauf que j'ai mon problème de ligne qui change de hauteur, et aprés avoir
fait des essais, en fait, le copié-collé me conserve bien le bon format,
mais ce qui me fait changer la hauteur, c'est que lorsque j'insère, les
lignes se trouvant en bas de tableau (et qui sont décalées vers le bas)
repassent à la hauteur de ligne standard qu'on a lorsqu'on ouvre un fichier
vierge, et là, je sais pas comment faire...

Si quelqu'un à une idée pour forcer les lignes décalées à garder leur
format....
Pour être plus clair...http://cjoint.com/?hgoLMrq4XQ

Et encore merci Isabelle!

--
__________________________
Géjoun.

····················································
Enlevez l'année pour répondre...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


|| bonjour féjoun,
||
|| est ce que comme ça, ça va mieux ?
||
|| x = ActiveCell.Row
|| Range("A7:R8").Copy
|| Range("A" & x & ":R" & x + 1).Insert Shift:=xlDown
|| Application.CutCopyMode = False
|| Rows(x).RowHeight = 6.75
|| Rows(x + 1).RowHeight = 9
||
|| isabelle
||