Excel VBA suppression de ligne vide

Résolu/Fermé
supermoun Messages postés 38 Date d'inscription dimanche 10 septembre 2006 Statut Membre Dernière intervention 26 juillet 2009 - 16 sept. 2006 à 16:13
 zertree - 21 août 2013 à 09:35
Bonjour à tous
Dans un formulaire, j'utilise un textbox qui remplie une
cellule dans une feuille avec l'option Multiline.
Comment faire pour supprimer les ligne vides dans le cas
ou l'on appui plusieurs fois de suite sur la touche entrée.
Merci d'avance.
A voir également:

2 réponses

Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214
16 sept. 2006 à 17:52
bonjour supermoun,

je te propose ce code, à adapter à tes données :
Sub SupprLignesVides()
    ' désactiver le rafraîchissement de l'écran pour accélérer le traitement
    Application.ScreenUpdating = False
    ' désactiver les alertes pour empêcher l'affichage
    ' des messages du genre "Voulez-vous etc."
    Application.DisplayAlerts = False
    
    ' se placer sur la dernière ligne contenant des données
    Range("A65536").End(xlUp).Select
    Do
        If IsEmpty(ActiveCell) Then
            ActiveCell.EntireRow.Delete
        End If
        ActiveCell.Offset(-1, 0).Select
    Loop Until ActiveCell.Row = 1
    
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
21
supermoun Messages postés 38 Date d'inscription dimanche 10 septembre 2006 Statut Membre Dernière intervention 26 juillet 2009 7
17 sept. 2006 à 12:17
Bonjour
j'ai bien reçu le message mais je me suis mal exprimé.

C'est dans le cas ou l'on fait plusieurs fois entrée dans le textbox.

Si vous avez la solution ?

A+
0
Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214 > supermoun Messages postés 38 Date d'inscription dimanche 10 septembre 2006 Statut Membre Dernière intervention 26 juillet 2009
17 sept. 2006 à 22:08
dans ce cas, la fonction PurgerChaine() devrait te convenir
Function PurgerChaine(Chaine As String) As String
    ' Chaine = contenu de la textbox
    Dim strTampon   As String
    Dim intNbCar    As Integer
    Dim intC1       As Integer
    Dim intC2       As Integer
    
    strTampon = Chaine
    Do
        intNbCar = Len(strTampon)
        ' dernier caractère de la chaîne
        intC1 = Asc(Mid(strTampon, intNbCar, 1))
        ' avant-dernier caractère de la chaîne
        intC2 = Asc(Mid(strTampon, intNbCar - 1, 1))
        
        ' la passage à la ligne se traduit par la succession
        ' des caractères Chr(10) et Chr(13)
        If intC1 = 10 And intC2 = 13 Then
            ' donc si on les détecte en fin de chaine, on les supprime
            strTampon = Left(strTampon, Len(strTampon) - 2)
        End If
        ' la boucle va s'effectuer tant qu'elle trouvera le couple
        ' Chr(10) et Chr(13) en fin de chaîne
    Loop Until intC1 <> 10 And intC2 <> 13
    ' la fonction PurgerChaine() renvoie le contenu
    ' de la TextBox purgé des retour-chariots intempestifs
    PurgerChaine = strTampon
End Function
fais appel à cette fonction avant de transférer le contenu du textbox dans la feuille.

j'ai commenté le code, mais si tu as des questions, n'hésite pas :-)
0
supermoun Messages postés 38 Date d'inscription dimanche 10 septembre 2006 Statut Membre Dernière intervention 26 juillet 2009 7 > Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008
19 sept. 2006 à 20:36
Essais concluants au niveau du textbox.
Merci encore pour ce partage du savoir.
A+
0
Mercccii !
Très utile :)
0
supermoun Messages postés 38 Date d'inscription dimanche 10 septembre 2006 Statut Membre Dernière intervention 26 juillet 2009 7
20 juil. 2007 à 18:32
Excel VBA suppression de ligne vide
2