Macro blaquante si une cellule est vide

bougui45 Messages postés 1 Statut Membre -  
 rawy -
Bonjour,
je cherche de l'aide sur une macro, qui pourrai etre bloquer si une cellule reste vide
Sub macro2()
'
' Macro2 Macro
' Macro enregistrée le 30/11/2007 par Jean-Marc
'
' Touche de raccourci du clavier: Ctrl+q
'
Range("A1:R66").Select
Range("R66").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Dim NomFichier
NomFichier = Range("C8") & "-" & Range("D8") & "-" & Range("E8")
ActiveWorkbook.SaveAs "C:\atelier\" & NomFichier & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.SmallScroll Down:=-1
ActiveWindow.LargeScroll Down:=-1
ActiveWindow.SmallScroll Down:=-5
ActiveWindow.SmallScroll Down:=40
ActiveWindow.LargeScroll Down:=-2
Range("D8:I8").Select
Selection.ClearContents
Range("C9:F9").Select
Selection.ClearContents
Range("C10:G10").Select
Selection.ClearContents
Range("B11:I11").Select
Selection.ClearContents
Range("B12:I12").Select
Selection.ClearContents
Range("E13:J13").Select
Selection.ClearContents
Range("D14:E14").Select
Selection.ClearContents
Range("I14:J14").Select
Selection.ClearContents
Range("B16:C16").Select
Selection.ClearContents
Range("E16:F16").Select
Selection.ClearContents
Range("J16:K16").Select
Selection.ClearContents
Range("L16:M16").Select
Selection.ClearContents
Range("E18:F18").Select
Selection.ClearContents
Range("G18:I18").Select
Selection.ClearContents
Range("J18:K18").Select
Selection.ClearContents
Range("M18").Select
Selection.ClearContents
Range("B17:C17").Select
Selection.ClearContents
Range("C21:Q21").Select
Selection.ClearContents
Range("A22:Q22").Select
Selection.ClearContents
Range("C23:Q23").Select
Selection.ClearContents
Range("A24:Q24").Select
Selection.ClearContents
Range("C25:Q25").Select
Selection.ClearContents
Range("A26:Q26").Select
Selection.ClearContents
Range("B29:C29").Select
Selection.ClearContents
Range("D29:E29").Select
Selection.ClearContents
Range("F29:G29").Select
Selection.ClearContents
Range("B30:C30").Select
Selection.ClearContents
Range("K30:L30").Select
Selection.ClearContents
Range("M30:N30").Select
Selection.ClearContents
Range("O30").Select
Selection.ClearContents
Range("P30").Select
Selection.ClearContents
Range("B30:C30").Select
Selection.ClearContents
Range("A35").Select
ActiveWindow.SmallScroll Down:=17
Range("A35:Q44").Select
Selection.ClearContents
Range("N46:Q48").Select
Selection.ClearContents
Range("N47").Select
ActiveWindow.SmallScroll Down:=7
Range("C50:D50").Select
Selection.ClearContents
Range("B51:C51").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-1
ActiveWindow.LargeScroll Down:=-1
ActiveWindow.SmallScroll Down:=-9
Range("D8:I8").Select

End Sub
Configuration: Windows Vista
Internet Explorer 7.0

2 réponses

  1. xkristi Messages postés 4336 Date d'inscription   Statut Membre Dernière intervention   564
     
    Salut !
    avant de faire ton clearContents
    tu peux selectionner plusieurs cellules adjacentes et sur plusieurs colonnes adjacentes, ce serait plus lisible
    par exemple :
    Range("B29:C29").Select
    Selection.ClearContents
    Range("D29:E29").Select
    Selection.ClearContents
    Range("F29:G29").Select
    Selection.ClearContents

    à remplacer par :
    Range("B29:G29").Select
    Selection.ClearContents

    Qu'est-ce que tu veux faire exactement ?

    0
    1. rawy
       
      comme j'ai pas d'imprimente connecter à mon poste mon sup m'a demandé de copier le fichier de mon poste a fin de pouvoir l'imprimer chez lui, mais hélas il ne s'ouvrir pas sur son poste
      0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    Xkristy, pour prolonger ta proposition d'allégement des macro:
    Supprimer lesSamllscroll qui ne servent a rien
    Regrouper les cellules à effacer avec comme tu le dis par exemple B29:G29
    Mais aussi:
    ("G29:B29,B16:K16,B18:K18, .... etc.....")Sachant que les deux points groupent les champs et la virgule les séparent.
    Ceci dit, j'attend aussi les explications de Bougui45 car la solution m'interresse. Je crois comprendre qu'il veut que sa macro ne se lance pas si une des cellules du champ sélectionné est vide...... peut être pour savoir si le tableau est bien plein avant de l'effacer?
    BCRDLMNT
    0