Copier incrémenter formule sans sélectionner la feuille
Résolu
mijean94
Messages postés
415
Date d'inscription
Statut
Membre
Dernière intervention
-
mijean94 Messages postés 415 Date d'inscription Statut Membre Dernière intervention -
mijean94 Messages postés 415 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterai trouver une ligne de code pour faire ma fonction qui soit plus simple que celle générée en auto apprentissage.
Y a-t-il une solution, sans avoir à sélectionner la feuille ou est fait la copie.
Je souhaite reste en visu sur la feuille « dessin »
Merci pour l’aide.
Bien cordialement
Je souhaiterai trouver une ligne de code pour faire ma fonction qui soit plus simple que celle générée en auto apprentissage.
Y a-t-il une solution, sans avoir à sélectionner la feuille ou est fait la copie.
Je souhaite reste en visu sur la feuille « dessin »
Merci pour l’aide.
Bien cordialement
Sub copie_formule()
' copier incrémenter formule de la cellule D3 vers les autres sur la même ligne
'
Sheets("Maquette").Activate
Range("D3").Select
Selection.AutoFill Destination:=Range("D3:IV3"), Type:=xlFillDefault
Range("D3:IV3").Select
ActiveWindow.ScrollColumn = 121
ActiveWindow.ScrollColumn = 120
ActiveWindow.ScrollColumn = 119
ActiveWindow.ScrollColumn = 118
ActiveWindow.ScrollColumn = 116
ActiveWindow.ScrollColumn = 114
ActiveWindow.ScrollColumn = 113
ActiveWindow.ScrollColumn = 111
ActiveWindow.ScrollColumn = 109
ActiveWindow.ScrollColumn = 107
ActiveWindow.ScrollColumn = 104
ActiveWindow.ScrollColumn = 101
ActiveWindow.ScrollColumn = 99
ActiveWindow.ScrollColumn = 96
ActiveWindow.ScrollColumn = 93
ActiveWindow.ScrollColumn = 90
ActiveWindow.ScrollColumn = 87
ActiveWindow.ScrollColumn = 84
ActiveWindow.ScrollColumn = 81
ActiveWindow.ScrollColumn = 78
ActiveWindow.ScrollColumn = 76
ActiveWindow.ScrollColumn = 73
ActiveWindow.ScrollColumn = 69
ActiveWindow.ScrollColumn = 66
ActiveWindow.ScrollColumn = 63
ActiveWindow.ScrollColumn = 59
ActiveWindow.ScrollColumn = 55
ActiveWindow.ScrollColumn = 51
ActiveWindow.ScrollColumn = 46
ActiveWindow.ScrollColumn = 42
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 4
Range("D3").Select
Sheets("dessin").Activate
End Sub
A voir également:
- Copier incrémenter formule sans sélectionner la feuille
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Feuille de score belote excel - Forum Excel
- Verrouiller cellule excel sans verrouiller la feuille - Guide
2 réponses
Bonjour,
Il suffit de supprimer tout ce qui est inutile :
Cordialement
Patrice
Il suffit de supprimer tout ce qui est inutile :
Sub copie_formule() ' copier incrémenter formule de la cellule D3 ' vers les autres sur la même ligne ' Sheets("Maquette").Range("D3").AutoFill _ Destination:=Sheets("Maquette").Range("D3:IV3") End Sub
Cordialement
Patrice
Re,
L'enregistreur de macro génère le code correspondant à chaque action que tu fais (par exemple, dans ton cas tous les scroll). Mais tu ne peux agir sur les objets (cellule, feuille, graphique, ...) qu'en les sélectionnant !!!
En VBA, il est très vivement déconseillé d'utiliser des références aux objets actifs (Activate, Select, Selection, ActiveWindow, ActiveCell, ActiveSheet, ActiveShape, ....). On peut s'en passer dans 99% des cas.
En conséquence, il faut aussi éviter les références implicites car elles sont attachées à un objet parent actif, par exemple :
-
- il vaut mieux utiliser
En règle générale, il vaut mieux faire référence à des objets nommément définis, indépendamment de leur activation, i.e. : Sheets("Maquette").
L'enregistreur de macro génère le code correspondant à chaque action que tu fais (par exemple, dans ton cas tous les scroll). Mais tu ne peux agir sur les objets (cellule, feuille, graphique, ...) qu'en les sélectionnant !!!
En VBA, il est très vivement déconseillé d'utiliser des références aux objets actifs (Activate, Select, Selection, ActiveWindow, ActiveCell, ActiveSheet, ActiveShape, ....). On peut s'en passer dans 99% des cas.
En conséquence, il faut aussi éviter les références implicites car elles sont attachées à un objet parent actif, par exemple :
-
Range("D3:IV3")équivaut à
ActiveSheet.Range("D3:IV3").
- il vaut mieux utiliser
Sheets("Maquette").Range("D3:IV3").
En règle générale, il vaut mieux faire référence à des objets nommément définis, indépendamment de leur activation, i.e. : Sheets("Maquette").
Type:=xlFillDefaultsignifie que Type sera défini par sa valeur par défaut, c'est-à-dire par la valeur qu'il prend quand on omet de le définir d'où l'inutilité de la définition de ce paramètre.
Merci pour l'aide, ça fonctionne nickel.
Supprimer les Activate, Select, Selection, ActiveWindow est-il la solution à la création en auto apprentissage ?
le Type:=xlFillDefault a-t-il une utilité ?
Bien cordialement