copier une zone si elle est non vide

Tmumu

XLDnaute Junior
Bonjour,

Je souhaite copier une zone définie uniquement si une cellule est non vide.

Et ce sans utiliser if ... then ...

Avez-vous une solution ?

Merci
 

Pièces jointes

  • Copier coller - zone non vide.xls
    26.5 KB · Affichages: 71

skoobi

XLDnaute Barbatruc
Re : copier une zone si elle est non vide

Re,

une proposition:

Code:
Sub Macro1()
Dim vide As Boolean
vide = True
For Each cellule In Range("B2:D5")
    If cellule <> "" Then
        Range("B2:D5").Copy Range("B10")
        vide = False
        Exit For
    End If
Next
If vide Then MsgBox "Le tableau est vide."
End Sub
 

Tmumu

XLDnaute Junior
Re : copier une zone si elle est non vide

Un tout grand merci ! Il y a en effet un "if ... them ..." mais cela n'est pas très long.

Est-il possible d'utiliser la fonction cells au lieu de range ?

Si oui comment faire ?

La suite de ma macro utilise Cells, et je préfére rester cohérent avec l'ensemble.
 

pierrejean

XLDnaute Barbatruc
Re : copier une zone si elle est non vide

Re

Avec Excel il y a des choses incontournables

un Range d'une cellule peut etre remplaçé par un Cells

mais pour une plage il faut Range (du moins a ma connaissance)

Voila ce que je peux faire de mieux

Code:
Sub copie()
Dim tablo()
'copie l'ensemble des cellules si l'une est non vide
tablo = Range(Cells(2, 2), Cells(5, 4)) ' range("B2:D5"))
For n = 1 To UBound(tablo, 1)
 For m = 1 To UBound(tablo, 2)
   x = x & tablo(n, m)
 Next m
Next n
If x <> "" Then
  Range(Cells(2, 2), Cells(5, 4)).Copy Destination:=Cells(10, 2) ' (Range("B10")
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 602
Membres
104 224
dernier inscrit
Brilma