Mettre à zéro une cellule en VBA

Bonjour à vous tous

Je fais appel à vos connaissances pour une modification un petit exemple de VBA que je voudrais modifier

je débute en VBA et j'e vous mais un mini exemple

pour modifier la remise a zéro d'une cellule

Merci

18incrementerc4.xls (40.50 Ko)

erreur de programme envoyé

26incrementerg4.xls (32.50 Ko)

bonjour,

modifier :

Public Sub effacer_1()
    With ActiveSheet
        .Cells(4, 5).Value = .Cells(4, 5).Value = 0
    End With
End Sub

en

Public Sub effacer_1()
    With ActiveSheet
        .Cells(4, 5).Value =  0
    End With
End Sub

A+

Bonjour,

Teste comme ceci

Public Sub effacer_1()
    With ActiveSheet
        .Cells(4, 5).Value = 0
    End With
End Sub

Bonjour,

Puisque tu commences, je pense qu'il faut commencer dés le début avec de bonnes habitudes.

Un des conseils que je n'arrête pas de répéter : il faut éviter chaque fois que possible d'utiliser les objets actifs.

Dans ce cas, il est préférable de désigner nommément la feuille plutôt que d'utiliser Activesheet qui pourrait être autre que Feuil1.

Public Sub effacer_1()
    With Worksheets("Feuil1")
        .Cells(4, 5).Value = 0
    End With
End Sub

Merci Patrice33740 et M12 de votre rapidité de réponse

Tant pis pour moi !

Bonjour à tous,

Bonjour,

Puisque tu commences, je pense qu'il faut commencer dés le début avec de bonnes habitudes.

Un des conseils que je n'arrête pas de répéter : il faut éviter chaque fois que possible d'utiliser les objets actifs.

Dans ce cas, il est préférable de désigner nommément la feuille plutôt que d'utiliser Activesheet qui pourrait être autre que Feuil1.

Public Sub effacer_1()
    With Worksheets("Feuil1")
        .Cells(4, 5).Value = 0
    End With
End Sub

Je ne m'y connais pas trop en VBA mais pourquoi ? C'est quoi l'inconvénient ? Si le bouton de la macro est positionnée sur la feuille en question c'est pas plus simple, on ne dépend ainsi pas du nom, mais on sait que l'on travaille sur la bonne feuille ?

Merci pour l'éclaircissement !

Bonne soirée.

Re,

Je ne m'y connais pas trop en VBA mais pourquoi ? C'est quoi l'inconvénient ? Si le bouton de la macro est positionnée sur la feuille en question c'est pas plus simple, on ne dépend ainsi pas du nom, mais on sait que l'on travaille sur la bonne feuille ?

Dans ce cas là, tu as entièrement raison, de plus, si la feuille venait à être renommée, cela fonctionnerait toujours

et au cas où, il faut prendre le N de la feuille

Public Sub effacer_1()
    With Sheets(1)
        .Cells(4, 5).Value = 0
    End With
End Sub

là, ce sera toujours la feuille 1, renommée ou pas

Merci à tous les intervenants

Bonne soirée

Bonjour à tous,

Je ne m'y connais pas trop en VBA mais pourquoi ? C'est quoi l'inconvénient ?

Si le bouton de la macro est positionnée sur la feuille en question c'est pas plus simple,

on ne dépend ainsi pas du nom, mais on sait que l'on travaille sur la bonne feuille ?

Pourquoi :

  • Tout d'abord parce qu'en désignant la feuille (nom, codename ou index) il n'y a aucune ambigüité possible.
  • Si le bouton ... Si Paris était ....
    On ne peux pas programmer sérieusement avec des si !
  • Sur les forums, je vois presque tous les jours des problèmes liés à l'utilisation des objets actifs (encore aujourd'hui sur ccm).
  • Même si ça n'arrive pas souvent, il ne faut pas oublier qu'on se trouve dans un environnement multitâche et qu'une autre macro peut changer la feuille active, et là, ta macro n'agira plus sur la bonne feuille.
  • Pas souvent, c'est pas jamais (il faut toujours éviter les si ..., les incertitudes)
  • Il toujours plus difficile de perdre une mauvaise habitude que ne jamais la prendre
  • Dans le code il est inutile de préciser Activesheet, c'est implicite.

D'accord merci pour les précisions !

Bonne soirée.

Rechercher des sujets similaires à "mettre zero vba"