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 :

Concatener la valeur d'une cellule a la fin de la valeur de la cellule du dessus. [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Concatener la valeur d'une cellule a la fin de la valeur de la cellule du dessus.
    Bonjour,

    J'aurais besoin d'un peu d'aide pour ma macro dans Excel.

    Je veux mettre en page un fichier CSV avec excel.
    Jusqu'ici rien de complique. J'utilise la fonction split qui me fait le bon boulot.

    Mon Probleme vien maintenan:

    Certain de mes "projet" von sur plusieur lignes. Donc mon split me renvoi une erreur car je sor de mon index etc.Ceci n'est pas le problemes non plus.

    En faite j'aimerais que si le 6eme Charactere de ma chaine n'est pas une "virgules" il me copie le contenu de la celulle a la fin du contenue de ma cellule Precedente.

    Quelqu'un aurait-il une idée de comment faire?

    Je parcour ma liste en commencant par la fin et en allant jusqu'au debut pour le momen.

    voici mon bou de 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 Report()
     
     
    Dim l As Variant
     
    Max = ActiveSheet.UsedRange.Rows.Count
     
     
    For l = Max To 2 Step -1
     
        If Mid(Cells(l, 1), 6, 1) = "," Then   ' le 6eme Charactere est une "virgules alors rien faire    
            MsgBox "Vrai" & l
            'I = I - 1
     
        Else        'Copier le contenue de la celulle a la fin du contenu de la cellule precedente.    
            MsgBox "Faux" & l
     
     
        End If
     
    Next l
    End Sub
    Mes messageBox me serve juste a verifier le bon fonctionnemen de mon If.

    Merci d'avance pour votre aide.
    Amicalement,
    Vincent.

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour,
    essaye de voir ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Report()
    Dim l As Variant
    Max = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
    'on sait jamais autant traiter les lignes vide et la possibilité d'être sous 2007 ;) 
    For l = Max To 2 Step -1
        If Mid(Cells(l, 1), 6, 1) = "," Then   ' le 6eme Charactere est une "virgules alors rien faire      
        Else        'Copier le contenue de la celulle a la fin du contenu de la cellule precedente.    
         cells(l-1,1)=cells(l-1,1) & cells(l,1)  'je prend la cellule du dessus meme si tu parcour a l'envers sinon remplace par un +1 au lieu du -1
         cells(l,1).EntireRow.delete
        End If
    Next l
    End Sub
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup Krovax,

    ton Code marche a merveille, j'ai juste remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(l-1,1)=cells(l-1,1) & cells(l,1)
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(l-1,1)=cells(l-1,1 )& cells(l-1,2)  & cells(l,1)
    Car par momen il y a des valeur dans la colonne B encore.

    je te remercie beaucoup. J'etais arrivé a ce point mais j'avais du fair une erreur d'allocation ou qqchose.

    Amicalement,
    Vincent.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/05/2015, 15h10
  2. [XL-2010] Récupération d'élément d'une certaine ligne en fonction de la valeur d'une cellule
    Par florent.saunier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/02/2014, 11h41
  3. [XL-2007] Filtre sur une ComboBox avec case cochée et les valeurs d'une colonne
    Par brunounours dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/11/2011, 09h17
  4. Réponses: 3
    Dernier message: 11/03/2010, 11h44
  5. [POO] Créer une instance d'un objet par la valeur d'une variable
    Par philworks dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/11/2007, 14h27

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