IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Suppression alt + Entrée par macro vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Par défaut Suppression alt + Entrée par macro vba
    Bonjour,

    je cherche une macro qui me permettrait de supprimer les alt + Entrée qui ne seraient pas suivis de textes...

    Voir le fichier ci joint avec le résultat à obtenir.

    Merci beaucoup pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ouvre jamais les classeurs joints.
    Le caractère envoyé Alt-Entée dans une cellule équivaut en VBA à la valeur LineFeed soit vbLf
    Je t'invite donc à t'intéresser à la fonction Split avec comme arguments la valeur de la cellule et vbLf ce qui te donnera une table
    Ensuite tu parcours à l'aide d'une boucle les éléments de cette table et tu testes leurs longueurs, si la longueur est égal à 0 cela signifie qu'il n'y a pas de texte.
    Tu fais donc la concaténation de chaque texte + vbLf que tu replaces dans la cellule
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Par défaut
    Merci Philippe pour cette piste.

    J'ai essayé avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Sub MARO()
    Dim FL1 As Worksheet, Cell As Range, Plage As Range
    Dim Var1
    Dim LString As String
    Dim LArray() As String
    Dim I As Long
     
    Set FL1 = Worksheets("Test")
    With FL1
            Set Plage = .Range("B2:C50") 
            For Each Cell In Plage
                LString = Cell.Value
                LArray = Split(LString, vbLf)
                For I = 1 To UBound(LArray)
                    ActiveCell.Value = LArray
                Next I
            Next
    End With
        Set FL1 = Nothing
        Set Plage = Nothing
    End Sub
    Mais ça ne fonctionne pas

    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Je n'ouvre jamais les classeurs joints.
    Le caractère envoyé Alt-Entée dans une cellule équivaut en VBA à la valeur LineFeed soit vbLf
    Je t'invite donc à t'intéresser à la fonction Split avec comme arguments la valeur de la cellule et vbLf ce qui te donnera une table
    Ensuite tu parcours à l'aide d'une boucle les éléments de cette table et tu testes leurs longueurs, si la longueur est égal à 0 cela signifie qu'il n'y a pas de texte.
    Tu fais donc la concaténation de chaque texte + vbLf que tu replaces dans la cellule

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Tu pourrais essayer ainsi, en ajoutant l'objet Worksheet comme tu l'as fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
        Dim I As Long
        Dim Cell As Range
        Dim Plage As Range
        Dim Tablo
        Dim strTemp As String
     
        Set Plage = Range("B2:C50")
        For Each Cell In Plage
            strTemp = ""
            If InStr(1, Cell.Text, vbLf) > 0 Then
                Tablo = Split(Cell.Text, vbLf)
                For I = 0 To UBound(Tablo)
                    If Tablo(I) <> "" Then
                        strTemp = strTemp & Tablo(I) & vbLf
                    End If
                Next
                Cell.Value = Left(strTemp, Len(strTemp) - Len(vbLf))
            End If
        Next

  5. #5
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Par défaut
    Merci beaucoup, voila qui m'a permis de régler mon problème.

    Bonne journée...

Discussions similaires

  1. [XL-2013] Suppression de données inf a un certaine date ou vides par macro VBA
    Par minoslha dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/01/2017, 09h07
  2. [XL-2007] Suivi d'effectif - suppressions de lignes sélectionnées par macro VBA
    Par mich2p1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2014, 20h00
  3. suppression de ligne par macro
    Par stefano dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/02/2008, 14h41
  4. Modifier la structure d'une table par macro / vba
    Par zermatt dans le forum Access
    Réponses: 8
    Dernier message: 21/01/2007, 15h32
  5. Réponses: 1
    Dernier message: 06/12/2006, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo