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 lignes et caracteres + conversion en nombre


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 53
    Points : 34
    Points
    34
    Par défaut Suppression lignes et caracteres + conversion en nombre
    Bonjour a tous,

    J’essaye depuis quelques jours de faire une macro me permettant de supprimer x nombres de lignes (dans mon cas les 7 premières sans critères spécifiques). Une suppression pure et simple

    J’aimerais également supprimer les 7 premiers caractères de la colonne A : à la place de 3403-001108725 je veux avoir 1108725 et le plus important est qu’il soit en format nombre.
    J’ai déjà bricole une macro pour cette deuxième partie bien qu’elle ne me convienne pas tout à fait car elle me supprime aussi les caractères du titre de ma colonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Suppression()
      Columns(1).Insert
      With Range("A1:A" & Range("B" & Rows.Count).End(xlUp).Row)
        .Formula = "=MID(RC2,6,100)"
        .Value = .Value
      End With
      Columns(2).Delete
    End Sub
    Ces fichiers Excel sont destinés à être importe sous Access d’où la suppression des premières inutiles, et la conversion en format nombre de la colonne A

    Bien cordialement,

  2. #2
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut
    bonjour,

    pour le format nombre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.NumberFormat = "0"
    pour enlever les 7 premier chiffre:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
     
    Dim Nc, Cell As Range
        For i = 1 To 10
            Worksheets("Test").Cells(i, 1).Value = Trim(Worksheets("Test").Cells(i, 1).Value) 'supprime espaces
            Nc = Len(Worksheets("Test").Cells(i, 1)) 'compte les caractères
            Worksheets("Test").Cells(i, 1).Value = Right(Worksheets("Test").Cells(i, 1).Value, Nc - 7)
        Next i
    End Sub
    bonne journée
    Merci de cliquer sur pour chaque message vous ayant aidé
    puis sur pour clore cette discussion …

    C'est en récoltant les cailloux qu'on te jette que tu construiras ta future estrade...

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    pour enlever la première partie délimitée par un caractère des données contigües d'une colonne,
    il est bien plus rapide d'utiliser une variable tableau et la fonction Split :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Demo()
                             VA = [A1].CurrentRegion.Columns(1).Value
        For R& = 2 To UBound(VA)
            SP = Split(VA(R, 1), "-"):  If UBound(SP) > 0 Then VA(R, 1) = SP(1)
        Next
                [A1].Resize(UBound(VA)).Value = VA:  End
    End Sub
    Sans souci avec une colonne au format Standard

    __________________________________________________________________________________________


    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Pour la #1, tu étais presque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Suppression()
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil2")
        .Columns(1).Insert
        .Range("B1").Copy .Range("A1")
        With .Range("A2:A" & .Range("B" & .Rows.Count).End(xlUp).Row)
            .FormulaR1C1 = "=MID(RC2,6,100)"
            .Value = .Value
        End With
        .Columns(2).Delete
    End With
    End Sub
    PS: J'ai ajouté la feuille par précaution et habitude
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Merci pour votre aide.

    Je débute en VBA du coup j’ai récupéré un code que j’ai « modifie ».

    Pourriez-vous me mettre sur la voie pour la suppression des premières lignes, j’ai aussi trouvé des codes se rapprochant mais n’ayant aucune base je ne trouve pas la bonne modification.

    Dans les exemples que je trouve il y a tout un tas de critères alors que je souhaite faire une suppression pure et simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Supppr()
        Dim i As Long
        Dim Plage As String
     
        For i = 1 To 7
                Rows(Plage).Delete Shift:=xlUp
                i = i - 1
        Next i
    End Sub
    Merci d’avance

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Pour un besoin aussi simple, ne pas oublier l'Enregistreur de macros, le code est livré sur un plateau !

    Suffit de sélectionner toutes les lignes puis les supprimer en une fois, pas besoin de boucle …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. Fonction de conversion de nombre en lettres
    Par david_chardonnet dans le forum Langage
    Réponses: 21
    Dernier message: 08/12/2021, 17h51
  2. Suppression d'un caractere à la fin d'une ligne
    Par narmika dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2007, 18h23
  3. [pb de caractere] Conversion de caractères accentué pour url
    Par smyley dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 04/11/2005, 15h55
  4. [JTable] probleme suppression ligne
    Par lilou77 dans le forum Composants
    Réponses: 1
    Dernier message: 01/11/2005, 10h34

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