copier jusqu'a derniere ligne non vide d'une zone en vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pascal21

XLDnaute Barbatruc
bonjour à tous
je butte sur un petit problème en vba
je cherche à copier/coller une zone en vba
comment selectionner dans la zone a20:i52 uniquement les lignes non vides
a savoir que les colonnes A, B, D, G et H contiennent des formules
je voudrais sélectionner uniquement les lignes où la colonne C est renseignée
merci pour votre aide
 
Re : copier jusqu'a derniere ligne non vide d'une zone en vba

PHP:
Range("a20:" & Range("a20").SpecialCells(xlCellTypeLastCell).Address).Select
j'ai trouvé ça sur un sujet similaire mais ça semble gener par la présence des formules des colonnes A B
PHP:
=SI(C20>0;$D$2;"")
il y a peut être un moyen de contourner ça
 
Re : copier jusqu'a derniere ligne non vide d'une zone en vba

Bonjour Pascal

essaye peut être ainsi, si j'ai bien compris :

si tes cellules contiennent des constantes
Code:
Range("A20:52").SpecialCells(xlCellTypeConstants).Select
si tes cellules contiennent des formules
Code:
Range("A20:52").SpecialCells(xlCellTypeFormulas).Select
il y a peut être lieu de placer cette instruction au cas ou il y ait aucune cellule concernée, évitera le message d'erreur
Code:
On Error Resume Next

bonne journée
@+
 
Re : copier jusqu'a derniere ligne non vide d'une zone en vba

bonjour pierrot
ça ne change rien au problème que je rencontre
je vais tenter de mieux m'expliquer
donc j'ai une zone de cellules a20:i52
les cellules a20:a52 ont une formule
les cellules des colonnes A, B, D, G et H ont également des formules jusqu'a la ligne 52
si je selectionne tel quel la zone a20:i52 et que par vba je le colle dans la feuil2 ça fonctionne la 1ere fois
mais si je refais la manip ça ne recolle pas les valeurs à la suite des autres(?)
ça laisse un espace de 19 lignes
c'est pour cela que je souhaite ne copier que les zones renseignées
pour éviter cet espace libre
hum!!! pas sur que ce soit plus clair maintenant
je vais essayer d'extraire un bout du classeur et de mettre ça en ligne
 
Re : copier jusqu'a derniere ligne non vide d'une zone en vba

re pierrot
entre temps j'ai trouvé cette astuce qui fonctionne
mais qui demande à être simplifiée
PHP:
 If Range("c20").Value > 0 And Range("c21") = 0 Then
   Range("a20:i21").Select
   Else
   If Range("c21").Value > 0 And Range("c22") = 0 Then
   Range("a20:i22").Select
   Else
   If Range("c22").Value > 0 And Range("c23") = 0 Then
   Range("a20:i23").Select
   Else
   If Range("c23").Value > 0 And Range("c24") = 0 Then
   Range("a20:i24").Select
   Else
   End If
   End If
   End If
   End If
et ce jusqu'a la ligne 52
si vous pouvez m'aider merci
 
Re : copier jusqu'a derniere ligne non vide d'une zone en vba

Salut Pascal21, Pierrot 🙂,le Forum

Pour la simplification essaye peut-être cela

Code:
[COLOR=BLUE]Dim[/COLOR] i [COLOR=BLUE]As Byte[/COLOR]
[COLOR=BLUE]For[/COLOR] i = 20 [COLOR=BLUE]To[/COLOR] 52
    [COLOR=BLUE]If[/COLOR] Cells(i, 3) > 0 [COLOR=BLUE]And[/COLOR] Cells(i + 1, 3) = 0 [COLOR=BLUE]Then[/COLOR] _
    Range(Cells(20, 1).Address & ":" & Cells(i + 1, 9).Address).Select
[COLOR=BLUE]Next[/COLOR] i
Bonne Journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour