Bonjour à tous,
J’aimerais pouvoir me positionner dans une cellule et copier les 70
cellules suivantes. J’ai trouvé le code suivant,
Range("L2:L70").Select
Selection.Copymais
Mais cela m’oblige à sélectionner une plage désignée. Donc lorsque je me
positionne dans n’importe laquelle cellule je veux pouvoir copier les 70
suivantes.
Merci de votre aide.
Manque un détail. Les 70 cellules suivantes, sont-elles en ligne ou en colonne ?
"jack" a écrit dans le message de news:
Bonjour à tous, J’aimerais pouvoir me positionner dans une cellule et copier les 70 cellules suivantes. J’ai trouvé le code suivant,
Range("L2:L70").Select Selection.Copymais
Mais cela m’oblige à sélectionner une plage désignée. Donc lorsque je me
positionne dans n’importe laquelle cellule je veux pouvoir copier les 70
suivantes. Merci de votre aide.
Michel Gaboly
Bonsoir,
Sauf exception, c'est une mauvaise idée de Copier des cellules en VBA. Dans de nombreux cas, cela a pour effet notable de ralentir le traitement. En effet, manipuler les propriétés est en général bien + efficace.
Par exemple, pour récupérer en A1 à A70 de la feuille 2, la valeur des 70 cellules en dessous de la feuille active :
With ActiveCell Sheets("Feuil2").Range("A1:A70") = Range(.Offset(1), .Offset(70)).Value End With
Pour récupérer les formules au lieu des valeurs :
With ActiveCell Sheets("Feuil2").Range("A1:A70").Formula = Range(.Offset(1), .Offset(70)).FormulaLocal End With
L'instruction avant le "End With" se termine par FormulaLocal, car avec Formula, on récupère la version en anglais de tou les noms de fonctions à l'intérieur des formules, ce qui se traduit par de nombreux "#NOM?".
NB - Dans les 2 cas, l'instruction entre "With ..". et "End With" doit être sur une seule ligne.
elles sont en colonne
"Clément Marcotte" wrote:
Bonjour,
Manque un détail. Les 70 cellules suivantes, sont-elles en ligne ou en colonne ?
"jack" a écrit dans le message de news:
Bonjour à tous, Jaimerais pouvoir me positionner dans une cellule et copier les 70 cellules suivantes. Jai trouvé le code suivant,
Range("L2:L70").Select Selection.Copymais
Mais cela moblige à sélectionner une plage désignée. Donc lorsque
je me
positionne dans nimporte laquelle cellule je veux pouvoir copier
les 70
suivantes. Merci de votre aide.
-- Cordialement,
Michel Gaboly www.gaboly.com
Bonsoir,
Sauf exception, c'est une mauvaise idée de Copier des cellules en VBA.
Dans de nombreux cas, cela a pour effet notable de ralentir le
traitement. En effet, manipuler les propriétés est en général bien +
efficace.
Par exemple, pour récupérer en A1 à A70 de la feuille 2, la valeur des
70 cellules en dessous de la feuille active :
With ActiveCell
Sheets("Feuil2").Range("A1:A70") = Range(.Offset(1), .Offset(70)).Value
End With
Pour récupérer les formules au lieu des valeurs :
With ActiveCell
Sheets("Feuil2").Range("A1:A70").Formula = Range(.Offset(1),
.Offset(70)).FormulaLocal
End With
L'instruction avant le "End With" se termine par FormulaLocal, car avec
Formula, on récupère la version en anglais de tou les noms de fonctions
à l'intérieur des formules, ce qui se traduit par de nombreux "#NOM?".
NB - Dans les 2 cas, l'instruction entre "With ..". et "End With" doit
être sur une seule ligne.
elles sont en colonne
"Clément Marcotte" wrote:
Bonjour,
Manque un détail. Les 70 cellules suivantes, sont-elles en ligne ou en
colonne ?
"jack" <jack@discussions.microsoft.com> a écrit dans le message de
news:C9BC2F66-2ACB-42CC-9BC3-DE212A3BD7D4@microsoft.com...
Bonjour à tous,
Jaimerais pouvoir me positionner dans une cellule et copier les 70
cellules suivantes. Jai trouvé le code suivant,
Range("L2:L70").Select
Selection.Copymais
Mais cela moblige à sélectionner une plage désignée. Donc lorsque
je me
positionne dans nimporte laquelle cellule je veux pouvoir copier
Sauf exception, c'est une mauvaise idée de Copier des cellules en VBA. Dans de nombreux cas, cela a pour effet notable de ralentir le traitement. En effet, manipuler les propriétés est en général bien + efficace.
Par exemple, pour récupérer en A1 à A70 de la feuille 2, la valeur des 70 cellules en dessous de la feuille active :
With ActiveCell Sheets("Feuil2").Range("A1:A70") = Range(.Offset(1), .Offset(70)).Value End With
Pour récupérer les formules au lieu des valeurs :
With ActiveCell Sheets("Feuil2").Range("A1:A70").Formula = Range(.Offset(1), .Offset(70)).FormulaLocal End With
L'instruction avant le "End With" se termine par FormulaLocal, car avec Formula, on récupère la version en anglais de tou les noms de fonctions à l'intérieur des formules, ce qui se traduit par de nombreux "#NOM?".
NB - Dans les 2 cas, l'instruction entre "With ..". et "End With" doit être sur une seule ligne.
elles sont en colonne
"Clément Marcotte" wrote:
Bonjour,
Manque un détail. Les 70 cellules suivantes, sont-elles en ligne ou en colonne ?
"jack" a écrit dans le message de news:
Bonjour à tous, Jaimerais pouvoir me positionner dans une cellule et copier les 70 cellules suivantes. Jai trouvé le code suivant,
Range("L2:L70").Select Selection.Copymais
Mais cela moblige à sélectionner une plage désignée. Donc lorsque
je me
positionne dans nimporte laquelle cellule je veux pouvoir copier