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

  • Initiateur de la discussion Initiateur de la discussion maroon
  • Date de début Date de début

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 !

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.
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😀😀😛😛
 
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?...
 
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...
 
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...
 
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"
😉
 
- 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

Réponses
10
Affichages
282
Réponses
8
Affichages
233
Réponses
4
Affichages
180
Réponses
8
Affichages
471
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
2
Affichages
154
Réponses
3
Affichages
582
Retour