Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
(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
666
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…