Existe-t-il une solution rapide pour recopier vers le bas une ligne de formule en VBA ?
22 réponses
G. L
Bonsoir,
Existe-t-il une solution rapide pour recopier vers le bas une ligne de
formule en VBA ?
De la colonne AU à la colonne CL j'ai des formules diverses dont une
majorité de RechercheV, par macro je recopie toutes ces formules jusqu'à la
dernière ligne de la colonne D.
Tout ce passe bien tant que je ne dépasse pas 2000 lignes après j'ai un
message « sélection trop grande » J'ai contourné le problème en sectionnant
la copie par groupe de 11 colonnes mais dans ce cas le problème se pose à
nouveau avant d'arriver à la fin.
J'ai essayé avec une boucle de faire la copie ligne à ligne ou par paquet de
qqs lignes mais c'est très long car je peux avoir jusqu'à 20 - 25000 lignes.
Bonjour, Merci, doucement j'apprends et j'aime ça ! Cordialement Gérard
"abcd" a écrit dans le message de news:
oui bien sûr, il n'y a pas de raison:
à la main: nommer la zone (la sélectionner une première fois, puis dans la zone nom taper un nom explicite par exemple "monchoix" et désormais la zone est disponible dans la liste déroulante : on peut tout resélectionner d'un coup, et il suffit de changer la formule d'une seule case pour la propager
en vesion macro, c'est pareil, il s'agit d'entrer une formule relative dans plusieurs cellule: exemple Union(Range("A15:C18"), Range("A1:C6")).Formula = "Ñ"
mais là il vaut mieux tester un coup pour vérifier que la première cellule (qui correspond à la formule tapée avant propagation) est plus dure à connaître: dans l'exemple ci-dessus j'ai volontairement mis le A15 avant le A1. Ainsi le D1 s'applique à A15 et non A1 (et bien sûr erreur en A1:C6 pusiqu'il n'y a pas de cellule au dessus)
Union( Range("A1:C6"),Range("A15:C18")).Formula = "Ñ" donnerait un résultat correct juste en inversant l'ordre (Ñ s'applique à A1 puis se propage).
encore une fois: inutile d'aller mettre une macro si la formule est succeptible de changer. Autant la taper une bonne fois pour toute avec l'assistance visuelle. (le nommage d'une zone est fait entre autre pour ça, resélectionner rapidement les cellules concernées)
Bonjour,
Merci, doucement j'apprends et j'aime ça !
Cordialement
Gérard
"abcd" <temp.nospamdc2@gmail.com> a écrit dans le message de
news:ujdKOpceFHA.1016@TK2MSFTNGP10.phx.gbl...
oui bien sûr, il n'y a pas de raison:
à la main: nommer la zone
(la sélectionner une première fois, puis dans la zone nom taper un nom
explicite par exemple "monchoix" et désormais la zone est disponible
dans la liste déroulante : on peut tout resélectionner d'un coup, et il
suffit de changer la formule d'une seule case pour la propager
en vesion macro, c'est pareil, il s'agit d'entrer une formule relative
dans plusieurs cellule:
exemple
Union(Range("A15:C18"), Range("A1:C6")).Formula = "Ñ"
mais là il vaut mieux tester un coup pour vérifier que la première
cellule (qui correspond à la formule tapée avant propagation) est plus
dure à connaître: dans l'exemple ci-dessus j'ai volontairement mis le
A15 avant le A1. Ainsi le D1 s'applique à A15 et non A1 (et bien sûr
erreur en A1:C6 pusiqu'il n'y a pas de cellule au dessus)
Union( Range("A1:C6"),Range("A15:C18")).Formula = "Ñ"
donnerait un résultat correct juste en inversant l'ordre (Ñ s'applique
à A1 puis se propage).
encore une fois: inutile d'aller mettre une macro si la formule est
succeptible de changer. Autant la taper une bonne fois pour toute avec
l'assistance visuelle. (le nommage d'une zone est fait entre autre pour
ça, resélectionner rapidement les cellules concernées)
Bonjour, Merci, doucement j'apprends et j'aime ça ! Cordialement Gérard
"abcd" a écrit dans le message de news:
oui bien sûr, il n'y a pas de raison:
à la main: nommer la zone (la sélectionner une première fois, puis dans la zone nom taper un nom explicite par exemple "monchoix" et désormais la zone est disponible dans la liste déroulante : on peut tout resélectionner d'un coup, et il suffit de changer la formule d'une seule case pour la propager
en vesion macro, c'est pareil, il s'agit d'entrer une formule relative dans plusieurs cellule: exemple Union(Range("A15:C18"), Range("A1:C6")).Formula = "Ñ"
mais là il vaut mieux tester un coup pour vérifier que la première cellule (qui correspond à la formule tapée avant propagation) est plus dure à connaître: dans l'exemple ci-dessus j'ai volontairement mis le A15 avant le A1. Ainsi le D1 s'applique à A15 et non A1 (et bien sûr erreur en A1:C6 pusiqu'il n'y a pas de cellule au dessus)
Union( Range("A1:C6"),Range("A15:C18")).Formula = "Ñ" donnerait un résultat correct juste en inversant l'ordre (Ñ s'applique à A1 puis se propage).
encore une fois: inutile d'aller mettre une macro si la formule est succeptible de changer. Autant la taper une bonne fois pour toute avec l'assistance visuelle. (le nommage d'une zone est fait entre autre pour ça, resélectionner rapidement les cellules concernées)
G. L
Bonjour,
Penser pouvoir passer du camp des nuls au camp des hyper qualifiés que vous êtes, crée chez moi un sentiment de honte mêlée d'émerveillement, un rêve quoi !
Il me suffirait peut être de faire la promenade proposée par twinley (le 22/6 15:03) oui mais, serait ce mon choix ? ;)))
Merci pour la proposition ;)
Cordialement
Gérard
"jps" <enlevezd' a écrit dans le message de news:%23%
"G. " <sugere~KillPub~@online.fr> a écrit dans le message de news:
Bonjour Daniel,
Merci bien pour la réponse que je vais mettre en place de ce pas.
Effectivement ici personne ne tue ! si ce n'est le moral du nul que je suis face à performance et pertinence des réponses faites à des questions pas toujours faciles à comprendre. rassure-toi, gérard, tu n'es pas le seul
Encore bravo à ce groupe qui sait bien vivre (Liège 2005 ;) ) et fait bien vivre le groupe ! par contre, lors des manifestations organisées par le C.O.I.N. (Liège il y
a
quelques jours et bien d'autres les années précédentes), sache que les nuls
changent de camp et il ne tient qu'à toi de le vérifier en venant au dîner de fin d'année qui, tradiitonnellement, a lieu à Paris chaque mi-décembre
Cordialement itou
Gérard jps
"Daniel" a écrit dans le message de news:OQ4TD%
Et dim Ligne as long ; sinon, je vais me faire tuer. Daniel "Daniel" a écrit dans le message de news:
Bonsoir. A tester :
Dim Ligne As Integer, Tabl(44) As String, col As Integer, i As Integer
Ligne = Range("D65536").End(xlUp).Row col = Range("AU1.CL1").Columns.Count For i = 0 To col - 1 Tabl(i) = Range("AU1").Offset(0, i).Formula Next i For j = 1 To Ligne For i = 0 To col - 1 Var = Range("AU" & j).Offset(0, i).Address Range("AU" & j).Offset(0, i).Formula = Tabl(i) Next i Next j
Cordialement. Daniel "G. " <sugere~KillPub~@online.fr> a écrit dans le message de news:
Bonsoir,
Existe-t-il une solution rapide pour recopier vers le bas une ligne de
formule en VBA ?
De la colonne AU à la colonne CL j'ai des formules diverses dont une majorité de RechercheV, par macro je recopie toutes ces formules jusqu'à
la dernière ligne de la colonne D.
Tout ce passe bien tant que je ne dépasse pas 2000 lignes après j'ai un message « sélection trop grande » J'ai contourné le problème en sectionnant la copie par groupe de 11 colonnes mais dans ce cas le problème se pose à
nouveau avant d'arriver à la fin.
J'ai essayé avec une boucle de faire la copie ligne à ligne ou par paquet
de qqs lignes mais c'est très long car je peux avoir jusqu'à 20 - 25000 lignes.
Penser pouvoir passer du camp des nuls au camp des hyper qualifiés que vous
êtes, crée chez moi un sentiment de honte mêlée d'émerveillement, un rêve
quoi !
Il me suffirait peut être de faire la promenade proposée par twinley (le
22/6 15:03) oui mais, serait ce mon choix ? ;)))
Merci pour la proposition ;)
Cordialement
Gérard
"jps" <enlevezd'ici@ici> a écrit dans le message de
news:%23%23CysTdeFHA.1356@TK2MSFTNGP10.phx.gbl...
"G. L@rumeur" <sugere~KillPub~@online.fr> a écrit dans le message de news:
Oj9AGLVeFHA.2880@TK2MSFTNGP10.phx.gbl...
Bonjour Daniel,
Merci bien pour la réponse que je vais mettre en place de ce pas.
Effectivement ici personne ne tue ! si ce n'est le moral du nul que je
suis
face à performance et pertinence des réponses faites à des questions pas
toujours faciles à comprendre.
rassure-toi, gérard, tu n'es pas le seul
Encore bravo à ce groupe qui sait bien vivre (Liège 2005 ;) ) et fait
bien
vivre le groupe !
par contre, lors des manifestations organisées par le C.O.I.N. (Liège il y
a
quelques jours et bien d'autres les années précédentes), sache que les
nuls
changent de camp et il ne tient qu'à toi de le vérifier en venant au dîner
de fin d'année qui, tradiitonnellement, a lieu à Paris chaque mi-décembre
Cordialement
itou
Gérard
jps
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de
news:OQ4TD%23PeFHA.796@TK2MSFTNGP09.phx.gbl...
Et dim Ligne as long ; sinon, je vais me faire tuer.
Daniel
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
ONGZ8uPeFHA.1504@TK2MSFTNGP15.phx.gbl...
Bonsoir.
A tester :
Dim Ligne As Integer, Tabl(44) As String, col As Integer, i As
Integer
Ligne = Range("D65536").End(xlUp).Row
col = Range("AU1.CL1").Columns.Count
For i = 0 To col - 1
Tabl(i) = Range("AU1").Offset(0, i).Formula
Next i
For j = 1 To Ligne
For i = 0 To col - 1
Var = Range("AU" & j).Offset(0, i).Address
Range("AU" & j).Offset(0, i).Formula = Tabl(i)
Next i
Next j
Cordialement.
Daniel
"G. L@rumeur" <sugere~KillPub~@online.fr> a écrit dans le message de
news:
OLcTE7OeFHA.1684@TK2MSFTNGP09.phx.gbl...
Bonsoir,
Existe-t-il une solution rapide pour recopier vers le bas une ligne
de
formule en VBA ?
De la colonne AU à la colonne CL j'ai des formules diverses dont une
majorité de RechercheV, par macro je recopie toutes ces formules
jusqu'à
la
dernière ligne de la colonne D.
Tout ce passe bien tant que je ne dépasse pas 2000 lignes après j'ai
un
message « sélection trop grande » J'ai contourné le problème en
sectionnant
la copie par groupe de 11 colonnes mais dans ce cas le problème se
pose
à
nouveau avant d'arriver à la fin.
J'ai essayé avec une boucle de faire la copie ligne à ligne ou par
paquet
de
qqs lignes mais c'est très long car je peux avoir jusqu'à 20 - 25000
lignes.
Penser pouvoir passer du camp des nuls au camp des hyper qualifiés que vous êtes, crée chez moi un sentiment de honte mêlée d'émerveillement, un rêve quoi !
Il me suffirait peut être de faire la promenade proposée par twinley (le 22/6 15:03) oui mais, serait ce mon choix ? ;)))
Merci pour la proposition ;)
Cordialement
Gérard
"jps" <enlevezd' a écrit dans le message de news:%23%
"G. " <sugere~KillPub~@online.fr> a écrit dans le message de news:
Bonjour Daniel,
Merci bien pour la réponse que je vais mettre en place de ce pas.
Effectivement ici personne ne tue ! si ce n'est le moral du nul que je suis face à performance et pertinence des réponses faites à des questions pas toujours faciles à comprendre. rassure-toi, gérard, tu n'es pas le seul
Encore bravo à ce groupe qui sait bien vivre (Liège 2005 ;) ) et fait bien vivre le groupe ! par contre, lors des manifestations organisées par le C.O.I.N. (Liège il y
a
quelques jours et bien d'autres les années précédentes), sache que les nuls
changent de camp et il ne tient qu'à toi de le vérifier en venant au dîner de fin d'année qui, tradiitonnellement, a lieu à Paris chaque mi-décembre
Cordialement itou
Gérard jps
"Daniel" a écrit dans le message de news:OQ4TD%
Et dim Ligne as long ; sinon, je vais me faire tuer. Daniel "Daniel" a écrit dans le message de news:
Bonsoir. A tester :
Dim Ligne As Integer, Tabl(44) As String, col As Integer, i As Integer
Ligne = Range("D65536").End(xlUp).Row col = Range("AU1.CL1").Columns.Count For i = 0 To col - 1 Tabl(i) = Range("AU1").Offset(0, i).Formula Next i For j = 1 To Ligne For i = 0 To col - 1 Var = Range("AU" & j).Offset(0, i).Address Range("AU" & j).Offset(0, i).Formula = Tabl(i) Next i Next j
Cordialement. Daniel "G. " <sugere~KillPub~@online.fr> a écrit dans le message de news:
Bonsoir,
Existe-t-il une solution rapide pour recopier vers le bas une ligne de
formule en VBA ?
De la colonne AU à la colonne CL j'ai des formules diverses dont une majorité de RechercheV, par macro je recopie toutes ces formules jusqu'à
la dernière ligne de la colonne D.
Tout ce passe bien tant que je ne dépasse pas 2000 lignes après j'ai un message « sélection trop grande » J'ai contourné le problème en sectionnant la copie par groupe de 11 colonnes mais dans ce cas le problème se pose à
nouveau avant d'arriver à la fin.
J'ai essayé avec une boucle de faire la copie ligne à ligne ou par paquet
de qqs lignes mais c'est très long car je peux avoir jusqu'à 20 - 25000 lignes.