Pb/Macro à Ti

S

stef51

Guest
Bonjour le forum,

J'utilise une macro à Ti ,pour supprimer les lignes vides, qui marche tres bien sauf dans mon fichier... Argh !!!
Pour info ledit fichier est issu d'un copier/collage special > valeurs...
S'agit il d'un pb de format ? Comment faire ?
Pouvez vous me remettre sur les rails ?
Merci de votre aide

PS:raccourci clavier macro Ctrl+z
 

Pièces jointes

  • dlete.ZIP
    9 KB · Affichages: 13
R

Robert

Guest
Salut Stef, salut le forum,

La macro de Maître Ti fonctionne à merveille.

Lance la macro ci-dessous dans ton fichier et tu comprendras pourquoi. Elle va colorier de rouge toutes les celules dont la valeur est un espace (space isn't it ?)

Public Sub space()
'boucle sur toutes les cellules utilisées de la feuille
For Each cel In ActiveSheet.UsedRange
If cel.Value = Chr(160) Then 'condition : si la valeur de la cellule est un espace
cel.Interior.ColorIndex = 3 'motif de couleur rouge
End If 'fin condition
Next cel 'prochaine cellule de la boucle
End Sub

Tu as compris maintenant qu'il n'y a aucune ligne vide dans la plage utilisée.

À plus,

Robert
 
C

CBernardT

Guest
Bonsoir Stef51 et Robert

Effectivement, des espaces sont présent un peu partout et empèchent la fonction NBVAL de considérer les cellules comme vides.

Je n'avais pas la méthode pour effacer ces espaces mais Robert me l'a soufflée.

Sub Supplignes()
Dim Plage As Range, C As Range

Application.ScreenUpdating = False
'Définition de la zone de travail
Set Plage = ActiveSheet.UsedRange
For Each C In Plage
'Elimination des espaces
If C.Value = Chr(160) Then C.Clear
'Effacement des lignes vides
If Application.CountA(C.EntireRow) = 0 Then C.EntireRow.Delete
Next C
Application.ScreenUpdating = True
End Sub

Cordialement

CBernardT
 
S

stef51

Guest
Boujour à tous,
Alors là les gars chapeau !
Merci milles fois car j'etais vraiment bloqué !
Question subsidiaire:
J'utilise dans mon projet cette macro ci-dessous qui est vraiment tres rapide, aussi au lieu de faire fonctionner à la queue leu leu....à la queue leu leu tout le monde s'eclate.... les deux precedemment evoquées par CBernardT et Robert ne serait il pas possible de modifier ou d'y integrer la nouvelle donne ?
thank's for all !

Sub SupprCond()

Dim Tab_Cells As Variant, Tab_Row() As String
Dim Deb_Tab As Long, Compteur As Long, Compteur2 As Long, Compteur3 As Long

Application.ScreenUpdating = False

With ActiveSheet
Tab_Cells = .Range("A1:N" & Range("A1").SpecialCells(xlCellTypeLastCell).Row).Value
Compteur = 0
Compteur3 = 65536
For Compteur2 = 1 To UBound(Tab_Cells)
If Tab_Cells(Compteur2, 1) = "GENERAL" _
Or Tab_Cells(Compteur2, 1) = "ETAT" _
Or Tab_Cells(Compteur2, 1) = "EXERCICE" _
Or Tab_Cells(Compteur2, 1) = "INSP" _
Or Tab_Cells(Compteur2, 1) = "REGION" _
Or Tab_Cells(Compteur2, 1) = "ASSIETTE" _
Or Tab_Cells(Compteur2, 14) = "MONTANTS EXPRIMES EN EUROS" _
Then
If Compteur3 < 65536 Then
Tab_Row(Compteur) = Compteur3 & ":" & Compteur2
Else
Compteur = Compteur + 1
ReDim Preserve Tab_Row(1 To Compteur) As String
Tab_Row(Compteur) = Compteur2 & ":" & Compteur2
Compteur3 = Compteur2
End If
Else
Compteur3 = 65536
End If
Next Compteur2
For Compteur2 = Compteur To 1 Step -1
.Range(Tab_Row(Compteur2)).Delete Shift:=xlUp
Next Compteur2
.Range("A1").Select
End With
MsgBox "Cliquez pour valider"
End Sub
 

Discussions similaires

Réponses
10
Affichages
924

Statistiques des forums

Discussions
314 085
Messages
2 105 647
Membres
109 410
dernier inscrit
fwbox