Intégrer un IF dans un WITH

Bonjour,

Voilà le code de base :

Private Sub CommandButton1_Click()
    Sheets("Bilan").Select
    With Sheets("Bilan")
    .Select
    .Range("A2").Select
    .Range(Selection, Selection.End(xlToRight)).Select
    .Range(Selection, Selection.End(xlDown)).Select
    .Selection.Clear
    .Range("A2").Select
    End With
End Sub

Le bouton de commande "contrôle ActiveX" est créé dans l'onglet "Base" et les actions voulues impactent l'onglet "Bilan".

Sauf erreur, je suis obligé d'utiliser la commande "With" pour effectuer ces actions.

Je souhaiterais intégrer une condition :

If Range("A2") <> "" Then [je déroule les actions ci-dessus sinon rien]

Je n'arrive pas à trouver la bonne syntaxe, merci.

4bilan.xlsm (20.55 Ko)

Bonjour,

essaie comme ceci:

Private Sub CommandButton1_Click()
    Sheets("Bilan").Select
    If Range("A2") <> "" Then
        With Sheets("Bilan")
        .Select
        .Range("A2").Select
        .Range(Selection, Selection.End(xlToRight)).Select
        .Range(Selection, Selection.End(xlDown)).Select
        .Selection.Clear
        .Range("A2").Select
        End With
    End If
End Sub

Bonjour à tous,

une autre solution qui évite les Select ralentisseurs et peu lisibles:

Private Sub CommandButton1_Click()
    With Sheets("Bilan")
    If .Range("A2") <> "" Then
        .Range("A2:E" & .Range("A" & Rows.Count).End(xlUp).Row).ClearContents
        Application.Goto .Range("A2")
    End If
    End With
End Sub

A+

@melch ne fonctionne pas, aucune action n'est faite.

@AlgoPlus

Parfait !

Merci à tous les deux. Au passage, vous savez pourquoi le texte descriptif sur le bouton de commande réduit en taille quand j'exécute la macro ?

(et comment l'empêcher ?)

Pas de modifications du caption (texte descriptif) du bouton sur excel 2007

J'ai lu sur le web que quand ça arrive, un redémarrage suffit... Je suis en weekend là, je testerai lundi.

Rechercher des sujets similaires à "integrer"