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 :

Effacer la valeur d'une cellule suivant le nombre de caractére


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Par défaut Effacer la valeur d'une cellule suivant le nombre de caractére
    Bonjour,

    Je débute dans VBA après juste quelques jours de formation !

    Voici le fichier que j'essaye de manipuler :
    test copie.xlsm

    J'essaye de faire en sorte que dans ma colonne B, si la valeur dans la cellule contient plus de 2 caractères, celle-ci est effacer (sans déplacement des valeurs qui reste, que chacun reste à sa place ! ^^ )
    Et dans la colonne C, tout ce qui ne possède pas 10 caractères (chiffres et/ou lettres) soit effacer également.

    Le tout doit me permettre ensuite de classer suivant la colonne A et B, les numéros de la colonne C (exemple à coté)...

    Merci de votre aide !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    bienvenue sur DVP

    Peu de personnes peuvent telecharger des pieces jointes (securite notamment).

    Aussi est-il plutot recommande de donner des exemples concrets dans le corps de tes messages

    Concernant le probleme en question, tu peux regarder avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Len(Range("B1").Value) >2 Then
        Range("B1").Clear
    End If
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour OneShiote et Jean-Philippe,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    [a1] = String(12, "t")
    If ClearBC([a1], 2, 5) Then [a1].ClearContents
    If ClearBC([a1], 1, 5) Then [a1].ClearContents
    End Sub
    Function ClearBC(r As Range, c As Integer, Nb As Integer) As Boolean
    ClearBC = r.Column = c And Len(r.Text) > Nb 
    End Function

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Par défaut
    Merci pour vos réponses si rapide !

    @Jean Philippe, j'ai essayé d'adapter la condition mais rien ne se passe...
    J'ai réadapter à la partie de code que j'ai sortie avec le bouquin qui m'aide à plus avoir mal à la tête !

    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
    23
    24
    Sub Tri()
     
    '---------------------------------------------------
    'Pour la suppression des données inutiles
    '---------------------------------------------------
     
    Dim i As Integer
    Dim b As Integer
    Dim b_min As Integer
     
     
    b = InputBox("Nbres Ss Ph ?")
    b_min = 0
     
     
    For i = [B1000].End(xlUp).Row To 1 Step -1 'Boucle ligne par ligne
     
            If Cells(i, 2) = "" Then Cells(i, 1).EntireRow.Delete 'Suppresion d'une ligne si la case est vide
            If Len(Range("B1").Value) > 2 Then
            Range("B1").Clear
        End If
     
    Next i
    End Sub

    @dysorthographie, ton code ne fonctionne pas du tout...

  5. #5
    Invité
    Invité(e)
    Par défaut
    c'est ballot il fonctionne chez moi!

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Je penche pour un oubli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Cells(i, 2) = "" Then Cells(i, 1).EntireRow.Delete 'Suppresion d'une ligne si la case est vide
            If Len(Range("B" & i).Value) > 2 Then
            Range("B" & i).Clear
        End If
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Par défaut
    Merci beaucoup ça marche parfaitement !
    J'ai réadapté pour ma colonne C.

    Je vais tenter de remettre en forme les données maintenant.

    Merci pour votre aide.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Octobre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2017
    Messages : 4
    Par défaut
    Nouvelle inconnue ! ^^"

    J'ai les données dans ce format (4 colonnes et environ 2000 lignes...) :
    Les données en rouge sont dans une colonne, les données en verts dans une autre... et bien sûr des cellules vides sont à l'intérieur du tableau...

    10 1 SRCOND
    10 8243005930
    10 2 SRCOMP
    20 1 TOHN4A
    20 800Z351300
    20 800P275694
    20 800Q165400
    20 800W206200

    Je veux les remettre en forme transposé mais en plus de ça, sous cette forme :
    Il peut y avoir plusieurs fois l'opération 10 mais avec une sous phase différente a chaque fois. Copier le libellé associé à la sous phase et la liste des outillages l'un à la suite de l'autre suivant l'opération et la sous phase.

    Opération 10 10 20
    Sous Phase 1 2 1
    Libellé
    Outillages


    Les couleurs sont juste pour la compréhension hein

    Merci beaucoup !

Discussions similaires

  1. Effacer la valeur d'une cellule en fin d'execution du code
    Par Callimea dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/02/2013, 12h26
  2. [XL-2003] Effacer toute la ligne suite à l'action d'effacer la valeur d'une cellule
    Par will-1981 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/09/2010, 14h40
  3. stocker la valeur d'une cellule effacée au cours de la procédure
    Par NATOU2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/10/2008, 18h10
  4. Enregistrer un classeur suivant la valeur d'une cellule
    Par majcalro dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2008, 14h56
  5. [VBA-E] Effacer les valeurs d'une plage de cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/06/2006, 11h07

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