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

VB.NET Discussion :

Fusionner les cellules des doublons dans excel


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut Fusionner les cellules des doublons dans excel
    Bonjour,
    Je voudrais fusionner les lignes des doublons dans excel via VB.net.
    Dans ma feuille excel les données sont presentées comme ceci:
    Type---------------- Nom
    -------------|---------------------
    Type1 |AAAAA
    -----------------------------------
    Type1 |BBBBBB
    -----------------------------------
    Type1 |CCCCC
    -----------------------------------
    Type2 |DDDDD
    -----------------------------------

    Comment faire?, Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Bonjour

    Euh je suis pas sur de bien comprendre la question.

    Si tu veux fusionner des cellules il faut faire ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheet.range("A1", "B1").Merge
    Apres pour trouver les doublons, il faut parcourir les differentes lignes et comparer les valeurs

    En esperant t'avoir un peu aidé

    Nasty

  3. #3
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Merci,
    Mais je suis encore bloqué au niveau de parcourir les differentes lignes et comparer les valeurs, Si vous avez des idées je serai preneuse

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    OK alors pour comparer les valeurs il faut faire un truc comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if sheet.range("A1").value = sheet.range("A2").value then
    ....
    Par contre pour parcourir les différentes lignes, je sèche! désolé

    Nasty

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    Pour parcourir tes lignes selon ce serait de faire un truc comme ça :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Dim leTexteAcomparer As String = sheet.range("A1").value
    Dim FinTexte as Integer = 0
    Dim exRange as Excel.range
    Dim i As integer = 1
    Dim j As integer = 1
     
    'Ca te permet que connaître la dernière ligne de ton fichier
    'Mais il me semble qu'il y a une méthode pour déterminer la dernière ligne de texte....
    While sheet.Cells(i,1) <> "" 
       i = i +1
    End While
     
    FinTexte = i
     
    i = 1
     
    While j < Fintexte
     
        i = j
     
        While sheet.Cells(i,1).value = leTexteAcomparer
             i = i + 1
        End While
     
        j = i
     
        exRange = sheet.range(sheet.Cells(i - 1,1),sheet.Cells(i - 1,2))
        exRange.merge()
     
        leTexteAComparer = sheet.Cells(j,1).Value
     
    End While
    MAis j'ai peur que le Merge écrase ton texte...et tu ne gères pas forcément le renvoi à la ligne

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Oui il se peut que merge écrase les valeurs contenu dans les cellules.

    Si tu ne veut pas ecraser les info, tu peux inserer une ligne lors que tu dois faire un traitement, fusionner les cellules, puis copier les valeurs et supprimer la ligne d'origine. C'est pas tres propre mais ca doit pouvoir fonctionner.

    Nasty

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    @Nasty, ça te semble juste ce que j'ai mis ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Oui ca a l'air bon... ca doit être optimisable mais la on est vendredi apres midi, j'arrete de reflechir

  9. #9
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Bonjour,
    J'ai essayer ce code et ca marché mais le traitement a duré 50 minutes exactement.
    voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     Dim m As Integer
       For k = 4 To 876
                  m = 0
                For m = k + 1 To 877
                    If xlWorkSheet.Range("A" & k).Value = xlWorkSheet.Range("A" & m).Value Then
                       xlWorkSheet.Range("A" & k, "A" & m).Merge()
                    End If
                Next
     
            Next
    Veuillez S'il vous plait me signalé ou est le probleme, Merci d'avance.

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2013, 08h38
  2. [Toutes versions] Recupérer les noms des feuilles dans Excel
    Par cinfo84 dans le forum Access
    Réponses: 3
    Dernier message: 31/07/2012, 23h10
  3. Fusionner les cellules du header dans un etat
    Par MoroccoTeam dans le forum ODS et reporting
    Réponses: 0
    Dernier message: 19/05/2010, 14h56
  4. [EXCEL] Mise en évidence des doublons dans une colonne
    Par dacid dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/10/2006, 19h14

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