Excel VBA suppression de ligne vide
Résolu
supermoun
Messages postés
39
Statut
Membre
-
zertree -
zertree -
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.
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.
2 réponses
-
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-
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+- 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 :-)
-
-
-