Problème enregistrement macro

Bonjour à tous.

Je suis novice dans excel donc ce que je vais dire est peut etre bête

Je dois faire un tableau en VBA.

Lorsque je fais enregistrer une macro , je séléctionne une case : A2 j'écris un mot puis je passe à la case : A3 et j'écris autre chose.

J'obtien le code suivant :

Sub Macro25()
'
' Macro25 Macro
'

'
    ActiveCell.Offset(-21, -3).Range("A1").Select
    ActiveCell.FormulaR1C1 = "forum"
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "Test"

End Sub

Or ce code ne me convient pas , je voudrais avoir le code suivant :

Sub Macro25()
'
' Macro25 Macro

.Range("A2").Select
    ActiveCell.FormulaR1C1 = "forum"
Range("A3").Select
    ActiveCell.FormulaR1C1 = "Test"
End Sub

Est ce qu'il y un moyen d'avoir ce code directement en passant par la fonction "enregistrer une macro"?

En plus le premier code ne fonctionne pas.

Merci d'avance

Bonjour,

L'enregistreur se contente de reproduire tes faits et gestes (avec une masse de code inutile)... ce n'est jamais une bonne façon d'utiliser VBA.

Je conseillerais donc d'écrire directement ce que tu veux programmer (en évitant d'imiter l'enregistreur avec des Select [inutiles si l'action n'est pas de positionner le curseur].

Là tu peux écrire :

Range("A2").Value = " forum"
Range("A3").Value = "Test"

Sachant que, sans qualificateur d'objet cela se réfère à la feuille active... Et si tu as une quantité d'indications à ajouter, ce n'est peut-être pas la meilleure méthode que peut offrir VBA : établir un tableau en VBA des données que tu veux affecter pour l'affecter ensuite en une seule fois serait sans doute plus adéquat et plus rapide.

Mais tout dépend du résultat final que tu veux obtenir...

Cordialement.

Bonjour Laurene,

Pour reprendre ce qu'a répondu MFerrand :

Cells(1, 1)= "A"

Range("A3") = "C"

Cells désigne les coordonnées (ligne, colonne) de la cellule

Range indique la cellule ou une plage de cellules (Range("A4:A10").Select)

Pour les nombres, faire la différence entre 1, 2 et "1" , "2".

Les premiers sont des chiffres, les seconds des caractères

En cas d'addition, 1 + 2 = 3

"1" + "2" = 12

Nb : sélectionner une cellule n'est pas très intéressant dans ce genre de situation, surtout que cela a de fortes chances de ralentir une macro conséquente

Je vous remercie de vos réponse !

Rechercher des sujets similaires à "probleme enregistrement macro"