Sélectionner plage sans les cellules valeur nul

Chasse

XLDnaute Occasionnel
Bonjour le forum

Les cellules (“A11 à L125”) Contiennent toutes des formules

J’aimerais que la sélection s’arête a la dernière ligne qui renvoie des valeurs

Avec cette macro ça me sélectionne toutes les cellules y compris les cellules qui renvoie 0
Code:
Sheets("Transfère").Select
Range("A11:L" & Range("L65536").End(xlUp).Offset(0, 1).Row).Copy
D’avance merci
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Sélectionner plage sans les cellules valeur nul

Bonjour,

Voici une proposition (non testée)

Code:
Sub Transfert()
Dim rg As Range
Dim c As Range

Set rg = Range("A11") 'il faut commencer à quelque part...
For Each c In Range("A11:L" & Range("L65536").End(xlUp).Offset(0, 1).Row)
    If c.Value <> 0 Then
        Set rg = Union(rg, c)
    End If
Next c

rg.Copy [Destination] '***
End Sub
A+
 

pierrejean

XLDnaute Barbatruc
Re : Sélectionner plage sans les cellules valeur nul

Bonjour Chasse

Salut Grand Chaman Excel

J'avais quasiment la même chose mais avec detection de la 1ere cellule non vide

Code:
Sub test()
Dim tot As Range
For Each cel In Range("A11:L" & Range("L65536").End(xlUp).Row)
If cel.Value <> 0 And cel.Value <> "" Then
  Set tot = cel
  Exit For
End If
Next
For Each cel In Range("A11:L" & Range("L65536").End(xlUp).Row)
If cel.Value <> 0 And cel.Value <> "" Then
  Set tot = Application.Union(tot, cel)
End If
Next
tot.Select
End Sub
 

job75

XLDnaute Barbatruc
Re : Sélectionner plage sans les cellules valeur nul

Bonjour Chasse, salut GrandChaman,

Ceci n'est pas très clair :

J’aimerais que la sélection s’arête a la dernière ligne qui renvoie des valeurs
Par ailleurs, qu'y a-t-il dans les cellules quand ce n'est pas zéro ?

Un fichier joint permettrait de ne pas proposer une solution à l'aveuglette, comme celle-ci par exemple :

Code:
Sub Test()
Dim r As Range, derlig As Long, plage As Range
With Sheets("Transfère")
  For Each r In .[A11:L125].Rows
    If Application.Sum(r) Then derlig = r.Row
  Next
  If derlig = 0 Then MsgBox "Bof...": Exit Sub
  Set plage = .Range("A11:L" & derlig)
  .Activate 'en VBA normalement  c'est inutile
  plage.Copy
  '---etc---
End With
End Sub
J'ai supposé que les cellules contiennent des valeurs numériques...

Edit : salut pierrejean, heureux de te croiser :)

A+
 
Dernière édition:

Chasse

XLDnaute Occasionnel
Re : Sélectionner plage sans les cellules valeur nul

Bonjour GrandChaman, pierrejean job75

Merci de votre aide

les macro de pierrejean et job75 fonctionne

les cellules contiennent des valeurs numériques... des formats date, monétaires, texte et « CONCATENER(nom et prénom) »
La colonne L format date

Je vais employer la macro de job75 qui sélectionne la plage complète, tout en gardant celle de pierrejean en réserve.

Je vous remercie infiniment
 

Discussions similaires


Haut Bas