XL 2013 regrouper plusieurs feuilles sans les formules

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 !

renaud2530

XLDnaute Nouveau
Bonsoir,

Ci-dessous une macro pêchée sur un forum qui permet de compiler les lignes de plusieurs feuilles dans un tableau recap. Quelle modification faut-il y apporter pour que celle-ci ne copie que les lignes qui contiennent une valeur? Pour l'instant, cela copie également les lignes qui contiennent des formules...
D'avance merci pour votre précieuse aide.

Cordialement,


Sub transfert()
Dim dlgR As Integer, dlgi As Integer
Dim i As Byte
With Sheets("RECAP")
dlgR = .Range("a" & Rows.Count).End(xlUp).Row
.Range("a2:x" & dlgR).ClearContents
End With
For i = 1 To Worksheets.Count
Select Case UCase(Sheets(i).Name)
Case Is = "RECAP"

Case Else
dlgR = Sheets("RECAP").Range("a" & Rows.Count).End(xlUp).Row
With Sheets(i)
dlgi = .Range("a" & Rows.Count).End(xlUp).Row
.Range("a2:x" & dlgi).Copy Sheets("RECAP").Range("a" & dlgR + 1)
End With
End Select
Next
End Sub


Renaud
 
Re,

Je n'ai pas le fichier sous les yeux, je ne peux donc pas deviner...
Cette procédure
Code:
.Range("a2:x" & dlgi).Copy Sheets("RECAP").Range("a" & dlgR + 1)
copie toute la feuille.
Alors je ne sais pas ce qu'il s'affiche chez toi, mais moi je ne peux t'en dire plus sans fichier.

A+
 
chaque feuille est un tableau à remplir au fur et à mesure de l'année au format identique à chaque fois. Chaque tableau va de la ligne 2 à 100 (ligne1 = titres). Dans certaines colonnes, j'ai des formules de 2à 100. Je voudrais compiler uniquement les lignes dans lesquelles les conditions ont été remplies et ou un résultat s'affiche( peut importe à quelle place sur la ligne)
 
Re,

Alors voici un code pour la copie sans les formules.
Je te laisse adapter.
VB:
Option Explicit
Sub Copie()
Dim i As Long, j As Integer, t(), t1
t = Range(Cells(1, 1), Cells(100, 100))
ReDim t1(1 To UBound(t), 1 To UBound(t))
For i = 2 To 100
For j = 2 To 100
If Not Cells(i, j).HasFormula Then
t1(i, j) = Cells(i, j)
End If
Next
Next
Range("A1").Resize(UBound(t1), UBound(t1)) = t1 'Choisir où on veut copier
End Sub
 
- 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
4
Affichages
177
Réponses
4
Affichages
461
Réponses
10
Affichages
547
Réponses
8
Affichages
493
Réponses
7
Affichages
163
Retour