Macro pour Copier/Coller une cellule dans une zone
4 réponses
douglasmartin79
Bonjour
Je r=E9alise une macro qui cr=E9e une formule dans un tableau, =E0 la 1ere
ligne d'une colonne, et je voudrais que ce calcul s'applique =E0 chaque
ligne du tableau. Les donn=E9es de mon tableau seront import=E9es d'un
autre systeme gr=E2ce =E0 cette m=EAme macro, elles seront donc
diff=E9rentes =E0 chaque importation (le nombre de lignes change
=E9galement). Comment faire alors pour que les formules s'appliquent =E0
tout le tableau et s'arretent =E0 la derniere ligne?
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
Daniel
Bonjour. Si j'ai bien compris, la macro suivante doit le faire :
Sub test() Dim DerLigne As Long DerLigne = Range("a1").SpecialCells(xlCellTypeLastCell).Row ActiveCell.Copy Range(ActiveCell.Offset(1, 0), _ ActiveCell.Offset(DerLigne - ActiveCell.Row, 0)) End Sub
Cordialement. Daniel a écrit dans le message de news:
Bonjour
Je réalise une macro qui crée une formule dans un tableau, à la 1ere ligne d'une colonne, et je voudrais que ce calcul s'applique à chaque ligne du tableau. Les données de mon tableau seront importées d'un autre systeme grâce à cette même macro, elles seront donc différentes à chaque importation (le nombre de lignes change également). Comment faire alors pour que les formules s'appliquent à tout le tableau et s'arretent à la derniere ligne?
Merci
Bonjour.
Si j'ai bien compris, la macro suivante doit le faire :
Sub test()
Dim DerLigne As Long
DerLigne = Range("a1").SpecialCells(xlCellTypeLastCell).Row
ActiveCell.Copy Range(ActiveCell.Offset(1, 0), _
ActiveCell.Offset(DerLigne - ActiveCell.Row, 0))
End Sub
Cordialement.
Daniel
<douglasmartin79@yahoo.fr> a écrit dans le message de news:
1135156840.591623.56500@o13g2000cwo.googlegroups.com...
Bonjour
Je réalise une macro qui crée une formule dans un tableau, à la 1ere
ligne d'une colonne, et je voudrais que ce calcul s'applique à chaque
ligne du tableau. Les données de mon tableau seront importées d'un
autre systeme grâce à cette même macro, elles seront donc
différentes à chaque importation (le nombre de lignes change
également). Comment faire alors pour que les formules s'appliquent à
tout le tableau et s'arretent à la derniere ligne?
Bonjour. Si j'ai bien compris, la macro suivante doit le faire :
Sub test() Dim DerLigne As Long DerLigne = Range("a1").SpecialCells(xlCellTypeLastCell).Row ActiveCell.Copy Range(ActiveCell.Offset(1, 0), _ ActiveCell.Offset(DerLigne - ActiveCell.Row, 0)) End Sub
Cordialement. Daniel a écrit dans le message de news:
Bonjour
Je réalise une macro qui crée une formule dans un tableau, à la 1ere ligne d'une colonne, et je voudrais que ce calcul s'applique à chaque ligne du tableau. Les données de mon tableau seront importées d'un autre systeme grâce à cette même macro, elles seront donc différentes à chaque importation (le nombre de lignes change également). Comment faire alors pour que les formules s'appliquent à tout le tableau et s'arretent à la derniere ligne?
Merci
Balain
disait:
Bonjour
Je réalise une macro qui crée une formule dans un tableau, à la 1ere ligne d'une colonne, et je voudrais que ce calcul s'applique à chaque ligne du tableau. Les données de mon tableau seront importées d'un autre systeme grâce à cette même macro, elles seront donc différentes à chaque importation (le nombre de lignes change également). Comment faire alors pour que les formules s'appliquent à tout le tableau et s'arretent à la derniere ligne?
Merci Bonjour,
Il faudrait un peu plus de précisions pour ton problème mais imaginons par exemple que tu as un tableau qui contient en colonne A les données et qu'en colonne B tu souhaites positionner ta formule ou bien le résultat de ton calcul : disons 4 fois la valeur en A. Tu peux faire une boucle for each jusqu'à trouver une cellule blanche dans la colone A
For Each truc In Range("A1", Range("A1").End(xlDown)) truc.Offset(0, 1).Value = truc.Value * 4 Next truc
Balain
<douglasmartin79@yahoo.fr> disait:
Bonjour
Je réalise une macro qui crée une formule dans un tableau, à la 1ere
ligne d'une colonne, et je voudrais que ce calcul s'applique à chaque
ligne du tableau. Les données de mon tableau seront importées d'un
autre systeme grâce à cette même macro, elles seront donc
différentes à chaque importation (le nombre de lignes change
également). Comment faire alors pour que les formules s'appliquent à
tout le tableau et s'arretent à la derniere ligne?
Merci
Bonjour,
Il faudrait un peu plus de précisions pour ton problème mais imaginons
par exemple que tu as un tableau qui contient en colonne A les données
et qu'en colonne B tu souhaites positionner ta formule ou bien le
résultat de ton calcul : disons 4 fois la valeur en A.
Tu peux faire une boucle for each jusqu'à trouver une cellule
blanche dans la colone A
For Each truc In Range("A1", Range("A1").End(xlDown))
truc.Offset(0, 1).Value = truc.Value * 4
Next truc
Je réalise une macro qui crée une formule dans un tableau, à la 1ere ligne d'une colonne, et je voudrais que ce calcul s'applique à chaque ligne du tableau. Les données de mon tableau seront importées d'un autre systeme grâce à cette même macro, elles seront donc différentes à chaque importation (le nombre de lignes change également). Comment faire alors pour que les formules s'appliquent à tout le tableau et s'arretent à la derniere ligne?
Merci Bonjour,
Il faudrait un peu plus de précisions pour ton problème mais imaginons par exemple que tu as un tableau qui contient en colonne A les données et qu'en colonne B tu souhaites positionner ta formule ou bien le résultat de ton calcul : disons 4 fois la valeur en A. Tu peux faire une boucle for each jusqu'à trouver une cellule blanche dans la colone A
For Each truc In Range("A1", Range("A1").End(xlDown)) truc.Offset(0, 1).Value = truc.Value * 4 Next truc
Balain
douglasmartin79
Merci Daniel, ça marche impeccable, lorsque je rajoute des lignes à mon tableau, les formules s'appliquent à tout le tableau, par contre truc pas trop logique, lorsque je réduis le nombre de lignes, la formule s'applique jusqu'aux cases de la liste précédente la plus longue.
cad si j'applique la macro avec un tableau de 50 lignes, la formule s'applique bien jusqu'à la ligne 50, si je réessaye avec un tableau de 40 lignes, la formule s'applique jusqu'à la ligne 50!
Suis je clair? comment résoudre ce problème
Merci
Merci Daniel,
ça marche impeccable, lorsque je rajoute des lignes à mon tableau,
les formules s'appliquent à tout le tableau, par contre truc pas trop
logique, lorsque je réduis le nombre de lignes, la formule s'applique
jusqu'aux cases de la liste précédente la plus longue.
cad si j'applique la macro avec un tableau de 50 lignes, la formule
s'applique bien jusqu'à la ligne 50, si je réessaye avec un tableau
de 40 lignes, la formule s'applique jusqu'à la ligne 50!
Merci Daniel, ça marche impeccable, lorsque je rajoute des lignes à mon tableau, les formules s'appliquent à tout le tableau, par contre truc pas trop logique, lorsque je réduis le nombre de lignes, la formule s'applique jusqu'aux cases de la liste précédente la plus longue.
cad si j'applique la macro avec un tableau de 50 lignes, la formule s'applique bien jusqu'à la ligne 50, si je réessaye avec un tableau de 40 lignes, la formule s'applique jusqu'à la ligne 50!
Suis je clair? comment résoudre ce problème
Merci
Daniel
Oui. C'est l'ennui de "SpecialCells". Si tu effaces le tableau ou une partie, essaie d'enregistrer avant de lancer la macro. Sinon, modifie la macro comme suit :
Sub test() Dim DerLigne As Long, var As Range DerLigne = ActiveCell.Offset(65536 - ActiveCell.Row, 1).End(xlUp).Row ActiveCell.Copy Range(ActiveCell.Offset(1, 0), _ ActiveCell.Offset(DerLigne - ActiveCell.Row, 0)) End Sub
En supposant que la colonne à droite de la colonne des formules correspond à une colonne de ton tableau. Daniel a écrit dans le message de news:
Merci Daniel, ça marche impeccable, lorsque je rajoute des lignes à mon tableau, les formules s'appliquent à tout le tableau, par contre truc pas trop logique, lorsque je réduis le nombre de lignes, la formule s'applique jusqu'aux cases de la liste précédente la plus longue.
cad si j'applique la macro avec un tableau de 50 lignes, la formule s'applique bien jusqu'à la ligne 50, si je réessaye avec un tableau de 40 lignes, la formule s'applique jusqu'à la ligne 50!
Suis je clair? comment résoudre ce problème
Merci
Oui. C'est l'ennui de "SpecialCells". Si tu effaces le tableau ou une
partie, essaie d'enregistrer avant de lancer la macro.
Sinon, modifie la macro comme suit :
Sub test()
Dim DerLigne As Long, var As Range
DerLigne = ActiveCell.Offset(65536 - ActiveCell.Row, 1).End(xlUp).Row
ActiveCell.Copy Range(ActiveCell.Offset(1, 0), _
ActiveCell.Offset(DerLigne - ActiveCell.Row, 0))
End Sub
En supposant que la colonne à droite de la colonne des formules correspond à
une colonne de ton tableau.
Daniel
<douglasmartin79@yahoo.fr> a écrit dans le message de news:
1135166610.021017.183610@f14g2000cwb.googlegroups.com...
Merci Daniel,
ça marche impeccable, lorsque je rajoute des lignes à mon tableau,
les formules s'appliquent à tout le tableau, par contre truc pas trop
logique, lorsque je réduis le nombre de lignes, la formule s'applique
jusqu'aux cases de la liste précédente la plus longue.
cad si j'applique la macro avec un tableau de 50 lignes, la formule
s'applique bien jusqu'à la ligne 50, si je réessaye avec un tableau
de 40 lignes, la formule s'applique jusqu'à la ligne 50!
Oui. C'est l'ennui de "SpecialCells". Si tu effaces le tableau ou une partie, essaie d'enregistrer avant de lancer la macro. Sinon, modifie la macro comme suit :
Sub test() Dim DerLigne As Long, var As Range DerLigne = ActiveCell.Offset(65536 - ActiveCell.Row, 1).End(xlUp).Row ActiveCell.Copy Range(ActiveCell.Offset(1, 0), _ ActiveCell.Offset(DerLigne - ActiveCell.Row, 0)) End Sub
En supposant que la colonne à droite de la colonne des formules correspond à une colonne de ton tableau. Daniel a écrit dans le message de news:
Merci Daniel, ça marche impeccable, lorsque je rajoute des lignes à mon tableau, les formules s'appliquent à tout le tableau, par contre truc pas trop logique, lorsque je réduis le nombre de lignes, la formule s'applique jusqu'aux cases de la liste précédente la plus longue.
cad si j'applique la macro avec un tableau de 50 lignes, la formule s'applique bien jusqu'à la ligne 50, si je réessaye avec un tableau de 40 lignes, la formule s'applique jusqu'à la ligne 50!