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 :

VBA: Transferer des commentaires dans des cellulles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut VBA: Transferer des commentaires dans des cellulles
    Bonjour a vous devellopeur,

    Je souhaiterais savoir si il existe une possibilite de transferer un commentaire de cellule sous excel dans une cellule.

    Mon tableau est comme suit:

    Colonne A B C D
    ligne
    1 xxx xxx xxx xxxx (avec un commentaire colonne D)
    2 yyyy yyyy yyyy yyyyy
    3 ddddd dddd dddd ddddd
    4 eeeee eeee eeee eeeee

    Et je souhaite inserer le commentaire cellule D1, en dessous sur autant de nouvelles lignes qu'en comporte le commentaire.

    Le commentaire se presente toujours comme suit:

    Utilisateur: fffff-ddd
    gggg-tete
    ttttt-ddsds
    eeee-sssss

    Colonne A B C D
    ligne
    1 xxx xxx xxx fffff-ddd
    2 gggg-tete
    3 ttttt-ddsds
    4 eeee-sssss
    5 yyyy yyyy yyyy yyyyy
    6 ddddd dddd dddd ddddd
    7 eeeee eeee eeee eeeee


    Voila, j'ai un peu cherche si on pouvait le faire mais j'ai rien trouve de concret.

    Merci d'avance.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je suppose le commentaire en B5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Blabla = range("B5").comment.text
        range("B6").value = blabla
    Teste ça en adaptant...

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Merci ouskel'nor,

    ET il me faudrais aussi, le code If qui detectera les cellulesou appliquer ce code.

    Exemple:

    Si il existe un commentaire en cellule B5, alors copier le comm........

    je trouve pas le code qui reconnait si une cellule a un commentaire.

    desole de rajouter des questions

    Merci pour ton aide

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    J'ai teste ton code ouskelnor,

    Mais en fait, je veux recuperer que les codes dans le commentaires(pas le nom d'utilisateur)
    et chaque code doit etre transferer dans une nouvelle ligne. avec l'enregistreur de Macro, j'obtiens ca:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro recorded 20/08/2007 by Y.Monte
    '
     
    '
        Range("E7").Select
        Range("E7").Comment.Text Text:="Y.Monte:" & Chr(10) & "456-56" & Chr(10) & "458-56" & Chr(10) & "4256-896" & Chr(10) & ""
        Range("E8").Select
        ActiveSheet.Paste
        Range("E8:E10").Cut Destination:=Range("E7:E9")
        Range("E7:E9").Select
    End Sub
    Mais c'est du manuel, il recherche pas de lui même le commentaire à copier.


    Merci encore

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu arrêtes d'en ajouter une couche à chaque post ?
    Bon. "Comment" n'a pas la propriété Range ou address, donc il faut se débrouiller autrement.
    Tu parcours toutes les cellules de la colonne en vérifiant qu'il y ait quelque chose dans les commentaire.
    Malheureusement, si le commentaire n'existe pas, ça plante.
    Heureusement il existe "ça qu'il faut" à mettre "où il faut" pour outrepasser l'erreur.
    Je suppose tes commentaires dans la colonne B, et que tu veux en placer le texte sans le nom de l'utilisateur dans la colonne A. Tu corrigeras. Je te propose donc ç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
    34
    35
    36
    37
    38
    39
    Dim Plage as range
    Dim Cell as range
    Dim DerniereLigne as long
    Dim Blabla as string
        'Recherche de la dernière ligne de la colonne contenant les commentaires
        DerniereLigne = Range("A65535").End(xlUp).Row
     
        'Avec la ligne suivante si une erreur survient on exécute la ligne suivante
        '... et s'il y en a une sur la suivante, on passe sur celle qui suit
        On Error Resume Next
     
        'On instancie la plage à examiner (de la ligne 1 à dernière ligne)
        Set Plage = Range("B1:B" & DerniereLigne)
     
        'On parcoure la plage ligne par ligne (Cell est l'instance de la cellule examinée
        For Each Cell In Plage
            If Cell.Comment.Text = "" Then
                    'là, ça plante... Normal, on passe à la ligne suivante
                Else 'si ça plante on sort du if
     
                    'Si on est là, c'est qu'il y a un commentaire
                    'On extrait le texte sans le nom de l'utiisateur (généralement suivi de deux points)
                    'Je te laisse regarder dans l'aide à Mid et à Instr
                    Blabla = Mid(Cell.Comment.Text, InStr(Cell.Comment.Text, ":") + 1, _
                    Len(Cell.Comment.Text) - InStr(Cell.Comment.Text, ":"))
     
                    'Pour supprimer les sauts de lignes dans les commentaires, ajoute cette ligne
                    blabla = Replace(Blabla, vblf, "")
     
                    'On place dans la colonne A, sur la ligne de Cell le texte du commentaire
                    Range("A" & Cell.Row).Value = Blabla
            End If
            Blabla = "" 
        Next
        'on supprime l'instance de Plage
        Set Plage = Nothing
     
        'On supprime la gestion d'erreur
        On Error GoTo 0
    Avec ce code, il est possible que ça plante si tu as un commentaire avec le seul nom de l'utilisateur mais avec la gestion d'erreur, le seul effet serait de coller l'ancienne valeur de Blabla dans la cellule A & NoLigne
    En ajoutant Blabla = "" après chaque ligne, en fin de boucle, ça devrait aller.
    D'ailleurs je l'ajoute
    A+

  6. #6
    Membre averti
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    Ah!!!!

    Ca a l'air super simple comme ca.

    G pa tout compris dans le code, je regarde ca de plus pres, je le teste et te reponds des que possible.

    Et promis j'arrete de rajouter des lignes.

    Merci

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

Discussions similaires

  1. [VBA-E] Comparer des valeurs dans des cellules
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 22/06/2017, 15h00
  2. Comment ajouter des séries dans des graphes sur des feuilles variables
    Par Molomarcopolo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2012, 16h26
  3. Suppression des commentaires dans des scripts
    Par julinho9 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 06/03/2009, 19h26
  4. mettre des n° dans des cellules avec VBA
    Par naitgo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/11/2007, 20h48
  5. [VBA-E] afficher des données dans des cellules
    Par Bad Bond dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/04/2006, 14h04

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