hicham8338
XLDnaute Nouveau
bonjour,
j'aimerai savoir comment faire pour supprimer des lignes vides dans une plage de données?
j'ai une macro qui m'execute des tableaux les uns à la suite des autres avec un decalage aléatoire que je n'arrive pas à résoudre, du coup j'ai pensé à supprimer les lignes vides entre mes tableaux, mais je ne sais pas l'ecrire en vba
je joins mon code qui copie les tableaux
For xa = 2 To Int(Cells(5, 5).Value / 1000 + 2)
'' ecrit dans la cellule expansion row de report result
Worksheets("Report Results").Activate
ActiveSheet.Unprotect ("osoft")
''ActiveSheet.Cells(25, 3) = Worksheets("Technical 1").Cells(xa, 9).Value
ActiveSheet.Cells(25, 3) = "='Technical 1'!$I$" & xa
'' cette application genere des données
Application.Run ("MNU_ETOOLS_EXPANDANDREFRESH")
" cette application ecrit dans les cellules (1,6) la longueur du tableau et (1,5) l'indice de la derniere colonne
Application.Run ("taille_tableau")
Worksheets("Report Results").Activate
''si xa = 2 copie le tableau avec les entetes
If xa = 2 Then
ActiveSheet.Range(Cells(5, 7), Cells(5 + Cells(1, 6).Value, Cells(1, 5).Value)).Select
Selection.Copy
''si xa <> 2 copie que les valeurs sans l'entete
Else
ActiveSheet.Range(Cells(7, 7), Cells(5 + Cells(1, 6).Value, Cells(1, 5).Value)).Select
Selection.Copy
End If
Dim difrow As Integer
Dim prodcol As Integer
Dim prod As Integer
''difrow est la longueur du tableau
difrow = Cells(1, 6).Value
'' prod est l'indice de la ligne ou on copie en premier
prod = difrow * (xa - 2)
'' prod est l'indice de la derniere ligne qu'on copie
prodcol = difrow * (xa - 1)
Worksheets("tableau").Activate
ActiveSheet.Unprotect ("osoft")
'' selection d'une plage correspondant à la taille du tableau qu'on va copier
Range(Cells(5 + prod, 7), Cells(5 + prodcol, Cells(1, 5).Value)).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Worksheets("Report Results").Select
Application.CutCopyMode = False
Cells(5, 5).Select
Next
merci de votre aide
Hicham
j'aimerai savoir comment faire pour supprimer des lignes vides dans une plage de données?
j'ai une macro qui m'execute des tableaux les uns à la suite des autres avec un decalage aléatoire que je n'arrive pas à résoudre, du coup j'ai pensé à supprimer les lignes vides entre mes tableaux, mais je ne sais pas l'ecrire en vba
je joins mon code qui copie les tableaux
For xa = 2 To Int(Cells(5, 5).Value / 1000 + 2)
'' ecrit dans la cellule expansion row de report result
Worksheets("Report Results").Activate
ActiveSheet.Unprotect ("osoft")
''ActiveSheet.Cells(25, 3) = Worksheets("Technical 1").Cells(xa, 9).Value
ActiveSheet.Cells(25, 3) = "='Technical 1'!$I$" & xa
'' cette application genere des données
Application.Run ("MNU_ETOOLS_EXPANDANDREFRESH")
" cette application ecrit dans les cellules (1,6) la longueur du tableau et (1,5) l'indice de la derniere colonne
Application.Run ("taille_tableau")
Worksheets("Report Results").Activate
''si xa = 2 copie le tableau avec les entetes
If xa = 2 Then
ActiveSheet.Range(Cells(5, 7), Cells(5 + Cells(1, 6).Value, Cells(1, 5).Value)).Select
Selection.Copy
''si xa <> 2 copie que les valeurs sans l'entete
Else
ActiveSheet.Range(Cells(7, 7), Cells(5 + Cells(1, 6).Value, Cells(1, 5).Value)).Select
Selection.Copy
End If
Dim difrow As Integer
Dim prodcol As Integer
Dim prod As Integer
''difrow est la longueur du tableau
difrow = Cells(1, 6).Value
'' prod est l'indice de la ligne ou on copie en premier
prod = difrow * (xa - 2)
'' prod est l'indice de la derniere ligne qu'on copie
prodcol = difrow * (xa - 1)
Worksheets("tableau").Activate
ActiveSheet.Unprotect ("osoft")
'' selection d'une plage correspondant à la taille du tableau qu'on va copier
Range(Cells(5 + prod, 7), Cells(5 + prodcol, Cells(1, 5).Value)).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Worksheets("Report Results").Select
Application.CutCopyMode = False
Cells(5, 5).Select
Next
merci de votre aide
Hicham