Excel 2013 - VBA - activesheet par défaut

Fermé
jeanne2413 - 25 janv. 2014 à 17:09
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 26 janv. 2014 à 11:54
Bonjour,



Etant profane de VBA j'arrive sous Office 2003 à faire d'excellentes macro en recording.

Je dois en refaire sur Excel 2013 mais le langage par défaut est immonde.

Pour selectionner une cellule plutôt que de faire par défaut activesheet.range("a1").select il se positionne par rapport à la dernière cellule sélectionnée (ce qui devient horrible car je navigue entretemps dans le fichier) à travers activecell.offset.......

Ceci m'oblige à corriger manuellement tout code pour le transformer en activesheet.

Ca prend un temps risible et j'aimerais que par défaut, quand j'enregistre une macro, il utilise activesheet plutôt qu'activecell.offset. Savez vous comment faire s'il vous plait?

Merci d'avance.
A voir également:

3 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
25 janv. 2014 à 17:47
Bonjour,

macro en recording. Vous faites reference a l'enregistreur de macro ou ...?????

Vous pourriez montrer un exemple de la chose ??
0
Tout a fait en enregistrement. Je n écris pas directement le code. Je ne suis pas chez moi donc je ne pourrai pas vous donner d exemple d ici peu
0
Donc typiquement pour sélectionner la cellule A1 par exemple, dans une feuille, VBA inscrit le code suivant quand je suis en recording (enregistrement probablement...)

ActiveCell.Offset(23, -3).Range("A1").Select

Sauf que ce code active une cellule qui se trouve à une distance de la cellule active. Dans ce cas 23 colonnes et -3 lignes de cellule active. Il suffit donc que dans la dernière navigation, avant de tourner la macro la dernière cellule sélectionnée est différente pour qu'il n'aille plus sur la cellule A1.

Le code correct serait:

ActiveSheet.Range("A1").Select.

J'aimerais demander à VBA, lorsque j'enrigstre une macro qu'il utilise ce code ActiveSheet par défaut plutôt qu'ActiveCell.Offset.

Les Macros sont trop longues et trop nombreuses pour que je modifie manuellement les ActiceCell.Offset en ActiveSheet.

Merci
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
26 janv. 2014 à 11:54
Bonjour,

ActiveCell.Offset(23, -3).Range("A1").Select

n'a pas ete ecrit par l'enregistreur de macro, c'est du code ecrit a la main.

A+
0