afficher des données par défaut aprés l'execution d'un code

chaelie2015

XLDnaute Accro
Bonsoir Forum
ci desous un code qu'efface une zone nommée "Zone_Taux_I11" composée deux deux colonnes, je souhaite lors d'excution de ce code et apres avoir effacer les données de cette zone , faire afficher dans toutes les cellules de la permiere colonne des valeurs 0 et dans la deuxiemme colonne faire afficher dans toutes les cellules le texte "En cours"
VB:
Sub Vider_zone_taux_I11()
  Rep = MsgBox("Vous allez supprimer toutes les données :" &  Chr(10) & "Poursuivre ?", vbYesNo, "ATTENTION")
  If Rep = vbYes Then [Zone_Taux_I11] = Empty
  Exit Sub
End Sub
NB: Zone_Taux_I11=Feuil1!$C$11:$F$16
Salutations
 

Pièces jointes

  • CHARLIE valeur par défaut.xlsm
    15.9 KB · Affichages: 9
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Chaelie,
Dans votre code le Exit Sub ne sert à rien.
Vous pouvez tester cette macro :
VB:
Sub Vider_zone_taux_I11()
  Rep = MsgBox("Vous allez supprimer toutes les données ?" & Chr(10) & Chr(10) & "Poursuivre ?", vbYesNo, "ATTENTION")
  If Rep = vbYes Then
    [Zone_Taux_I11] = 0
    [ZoneEnCours] = "En cours"
  End If
End Sub
J'ai appelé ZoneEnCours la seconde colonne "F11:F16"
 

Pièces jointes

  • CHARLIE valeur par défaut.xlsm
    19.2 KB · Affichages: 2

Staple1600

XLDnaute Barbatruc
Bonjour le fil, chaelie2015, sylvanu

Une autre façon de faire
VB:
Sub Vider_zone_taux_I11_ter()
If MsgBox("Vous allez supprimer toutes les données :" _
    & Chr(10) & "Poursuivre ?", vbYesNo, "ATTENTION") = 6 Then
[Zone_Taux_I11] = Array(0, "En cours", "", "", "")
End If
End Sub
 

job75

XLDnaute Barbatruc
Bonjour chaelie2015, sylvanu, JM, le forum,

Bonne idée JM mais il vaut mieux :
VB:
Sub Vider_zone_taux_I11()
If MsgBox("Vous allez supprimer toutes les données..." & vbLf & vbLf & "Poursuivre ?", vbYesNo, "ATTENTION") = vbYes Then [Zone_Taux_I11] = Array(0, , "En cours")
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Bonjour job75

Je n'ai pas ouvert le fichier exemple
Je me juste basé sur:
NB: Zone_Taux_I11=Feuil1!$C$11:$F$16
une zone nommée "Zone_Taux_I11" composée deux deux* colonnes
(*: moi j'en compte 4 ;))

Et j'ai déduis qu'il s'agissait des deux premières colonnes.

PS: Ton code mets des N/A dans la dernière colonne
Bonjour chaelie2015, sylvanu, JM, le forum,

Bonne idée JM mais il vaut mieux :
VB:
Sub Vider_zone_taux_I11()
If MsgBox("Vous allez supprimer toutes les données..." & vbLf & vbLf & "Poursuivre ?", vbYesNo, "ATTENTION") = vbYes Then [Zone_Taux_I11] = Array(0, , "En cours")
End Sub
A+
(Testé avec Zone_Taux_I11=Feuil1!$C$11:$F$16)
Avec une virgule de plus, OK ;)

EDITION: j'avais lu trop vite la proposition de sylvanu.
Sinon, j'aurai capté qu'il s'agissait de la 1er et de la dernière colonne.
;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Et une à l'ancienne, plus basique
VB:
Sub Vider_zone_taux_I11_quatro()
If MsgBox("Vous allez supprimer toutes les données..." & vbLf & vbLf & "Poursuivre ?", vbYesNo, "ATTENTION") = vbYes Then
With [Zone_Taux_I11]
    .ClearContents
    .Columns(1) = 0: .Columns(4) = "En cours"
End With
End If
End Sub
 

job75

XLDnaute Barbatruc
PS: Ton code mets des N/A dans la dernière colonne
Bah les cellules de la 4ème colonne sont fusionnées avec la 3ème… Chez moi pas de problème.

Si la feuille peut être filtrée il faut penser à tout afficher, le code de la feuille :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [Zone_Taux_I11].Rows(0)) Is Nothing Then Exit Sub
Cancel = True
If MsgBox("Vous allez supprimer toutes les données..." & vbLf & vbLf & "Poursuivre ?", vbYesNo, "ATTENTION") = vbNo Then Exit Sub
If FilterMode Then ShowAllData 'si la feuille est filtrée
[Zone_Taux_I11] = Array(0, , "En cours")
End Sub
 

Pièces jointes

  • CHARLIE valeur par défaut(1).xlsm
    17.2 KB · Affichages: 2

Discussions similaires

Réponses
8
Affichages
646

Statistiques des forums

Discussions
312 160
Messages
2 085 838
Membres
103 000
dernier inscrit
Nath13