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

XL 2016 Boucle sur lignes avec isempty() et sauts de lignes

maroon

XLDnaute Junior
Bonjour,

Avec cette macro j'aimerais copier les ligne d'une feuille 1 vers une feuille 2 en sautant une ligne à chaque fois sur la feuille 2. En revanche si la ligne i de la feuille 1 est vide alors ne rien faire et passer à la ligne suivante. Avec le code suivant:
VB:
Dim i&
Dim j&
Dim line As Variant

Derlig = worksheets("feuille1").Range("A" & Rows.Count).End(xlUp).Row
j = 1

For i = 1 To Derlig
    line = worksheets("feuille1").Rows(i)
           If IsEmpty(Rows(i).Value) = False Then
                  worksheets("feuille2").Rows(j).Value = line
                  j = j + 2
           Else: j = j
           End If
  
Next i
Mais en faisant du "pas à pas " je me rends compte que même lorsque la ligne rows(i) est vide la variable "j" est incrémentée à "j+2" alors que je voudrais que "j" reste à sa valeur et ne passe à j+2 que si rows(i) est non vide...

Si quelqu'un peut m'aider merci d'avance!!
 
Dernière édition:
Solution
Re

Voici comment je ferai (sans trop me casser la tête)

VB:
Sub Recopie()
Dim T, tmp As Worksheet, i&
Sheets("Feuil1").Copy After:=Sheets(Sheets.Count)
Set tmp = ActiveSheet
tmp.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
T =tmp.[A1].CurrentRegion.Value
Sheets("Feuil2").Cells(1).Resize(UBound(T, 1), UBound(T, 2)) = T
Application.DisplayAlerts = False
tmp.Delete
With Sheets("Feuil2")
For i = .Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
.Cells(i, 1).Offset(1).EntireRow.Insert
Next
End With
End Sub
NB: La feuille 2 doit être vide avant de tester
Et sur la feuille 1 , il doit y avoir des données et du vide en colonne A

EDITION: Bonjour jmfmarques.

jmfmarques

XLDnaute Accro
Euh ... ce n'est pas la réponse à la question que je t'ai posée !
Et ton OUI accompagné d'un NON est ambigu
Confirme-nous (si tel est le cas), que des lignes peuvent ne rien avoir en A et avoir quelque-chose dans une autre colonne.
 

maroon

XLDnaute Junior
MDR jmfmarques!!

Moi qui dis
Non il n'y a rien en colonne A pour les lignes vides...
je pense que ça répond à ta question qui était
y a-t-il des lignes sans rien en colonne A mais avec quelque-chose dans une autre colonne ?
!? Et le "OUI" juste avant c'était aussi pour répondre à
Réponse OUI ou NON, sans autre prose, s'il te plait.


Confirme-nous (si tel est le cas), que des lignes peuvent ne rien avoir en A et avoir quelque-chose dans une autre colonne.
Non je ne le confirme pas! Les lignes vides de la feuille 1 dont je parle sont vides en colonne A ainsi que sur tout le reste de la ligne... vide de A à Z
 

maroon

XLDnaute Junior
Resalut!
Du coup je comprends plus ou moins le code (j'analyse encore certaines choses et ça devrait aller).
Par contre je ne comprends pas le "Sheets(Sheets.Count)" dans cette ligne:
VB:
Sheets("RECAP").Copy After:=Sheets(Sheets.Count)

Autre chose: le problème pour moi c'est que j'aimerais pouvoir utiliser la feuille 2 pour faire un certains nombre d'opérations dont les résultats se mettront à jour à chaque fois que les données seront copiées/modifiées... hors j'ai l'impression que ton code ne remplace pas simplement le contenu de la feuille 2 mais supprime complètement les cellules?...
 

maroon

XLDnaute Junior
Etant donnée que mon "tableau de données" sur la feuille 1 ne sera jamais très important est-ce que je ne peux pas privilégier une boucle?
En fait c'est un peu comme si je cherchais à copier sur la feuille 2 en "ignorant" toutes les lignes paires: 2, 4, 6... et donc sans les effacer (car il y aura des formules à l'intérieur).

Je ne sais pas si c'est faisable... sinon je vais essayer de voir comment je peux faire en utilisant ta solution...
 

maroon

XLDnaute Junior
Re

Tu n'as pas toujours compris l'appel du pied que représente le fait que je parle en insistant de mon fichier...

Relis le message#19 et essaies de comprendre où je veux en venir
MDR! Oui je viens de comprendre!
Alors (si j'ai bien compris ) je fais un exemple avec les éléments qui seront sur mon fichier final et je le poste... Merci et à tout à l'heure...
 

maroon

XLDnaute Junior
Salut Staple1600!!

En préparant le fichier exemple j'ai trouvé un moyen d'utiliser la solution que tu m'as proposée! Donc c'est ok pour moi ça fonctionne nickel!

Merci encore pour ton implication!!
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, maroon

•>maroon
L'usage (enfin en théorie) c'est que si le demandeur solutionne sa question en remaniant un code et/ou formule proposé par un répondeur, c'est de poster dans son fil sa solution.
En effet, cela pourrait servir à des XLDnautes avec une problématique similaire.
Donc à défaut de fichier exemple (bien qu'il soit prêt...), tu peux (ou tu peux ne pas) poster ce qui "fonctionne nickel"
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…