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 :

Comparaison et recopie de données


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut Comparaison et recopie de données
    Bonjour,

    J'ai un classeur excel avec plusieurs onglets. Chaque onglet contient 5 colonnes dont une colonne nommée référence (7 chiffres) et une colonne nommée information qui contient du texte.

    Les informations vont être rentrées pour chaque article sur un onglet nommée onglet1 (à chaque article correspond un commentaire). Ensuite, je voudrais qu'une recherche soit faite sur mes différents onglets . Dès qu'un même numéro de référence est trouvé (par exemple sur onglet33), je souhaiterais que le commentaire présent sur onglet1 pour la référence commune soit recopié sur onglet33.

    J'espère que c'est clair...Je pense qu'il va falloir passer par un macro et VBA mais j'ai jamais codé de macro (juste créer des macros par succession d'opérations).

    Merci de votre aide et de vos conseils.

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Supposons les références en colonne A et les commentaires en colonne C de la première feuille
    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
    Sub test_recherche()
    Dim i As Integer, j As Integer, C As Range, Ref As String, adres1 As String
     
    For i = 2 To Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
    Ref = Cells(i, 1).Text
        For j = 2 To Sheets.Count
            With Sheets(j)
                Set C = .Range("A:A").Find(what:=Ref, lookat:=xlWhole)
                If Not C Is Nothing Then
                    adres1 = C.Address
                    Do
                    .Cells(C.Row, 3) = Sheets(1).Cells(i, 3)
                    Set C = .Range("A:A").FindNext(C)
                    Loop While Not C Is Nothing And C.Address <> adres1
                End If
            End With
        Next
    Next
    End Sub

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut maxime17s
    sur toutes tes feuilles, Les colonnes Référence et commentaire sont à la même place ? ou ont le même titre (lesquels) en ligne ?
    Une modification du commentaire peut-elle être effectuée seulement sur "onglet1" (les autres étant protégés) ? où sur n'importe quel onglet du classeur ?
    En cas de protection, est-ce une protection fonctionnelle(pas de mot de passe) ou restrictive ?
    A+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut Précisions
    Bonjour,

    Merci de vos réponses.

    Les colonnes références et commentaires seront dans la même colonne pour tous les onglets. Ensuite, les modification ou ajouts de commentaires doivent pouvoir être faits sur n'importe quel onglet.

    Merci
    Max

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par maxime17s Voir le message
    Ensuite, les modification ou ajouts de commentaires doivent pouvoir être faits sur n'importe quel onglet

    Les informations vont être rentrées pour chaque article sur un onglet nommée onglet1
    Faudrait savoir !!!

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut maxime17s
    Les colonnes références et commentaires seront dans la même colonne pour tous les onglets. Ensuite, les modification ou ajouts de commentaires doivent pouvoir être faits sur n'importe quel onglet.
    lesquelles?????????
    On est pas à essayer de te tirer les vers du nez, juste t'aider
    Par la même occasion,
    - Si tu crées une référence dans une feuille, il faut la créer automatiquement dans les autres ou pas ?
    - Si tu la modifies ?
    - Si tu la supprimes, on supprime les lignes correspondantes ?

    Le but d'un forum, n'est pas d'avoir le plus de postes pour arriver à solutionner le problème, c'est d'en avoir le moins. Là, ce que tu fais, c'est juste agacer les dépanneurs. En espérant qu'ils ne le seront pas suffisament pour abandonner le sujet
    A+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut
    Bonjour,

    Je me suis mal exprimé sur mon 1er message. Veuillez m'excuser. Il faut en effet que les modifications ou ajouts de commentaires puissent être faits sur n'importe quel onglet.

    Je vous en explique la raison. Nous allons commencer par mettre les commentaires sur l'onglet1 et à appliquer la macro pour que tous les autres onglets ayant au moins une référence commune avec onglet1 soit mis à jour. Néanmoins onglet2 pourra contenir de nouvelles références par rapport à onglet1. Il faudra donc mettre les commentaires pour ces références sur onglet2. Ensuite une application de la macro devra permettre de mettre à jour les onglets suivants ayant des références communes avec onglet2...et ainsi de suite !

    Si tu crées une référence dans une feuille, il faut la créer automatiquement dans les autres ou pas ?

    Non, ce n'est pas la peine. Les références seront ajoutées manuellement. Par contre si la référence ajoutée sur onglet1 est présente sur onglet3, une application de la macro devra permettre de mettre le commentaire présent sur onglet1 sur onglet3. Pour info, chaque onglet correspond à des données à une date précise.

    Si tu la modifies ? Si tu la supprimes, on supprime les lignes correspondantes ?

    Les références ne seront ni modifiées, ni supprimées. Seul le commentaire lié à une référence doit pouvoir être modifié ou supprimé (la macro permettant de répandre la suppression ou la modification du commentaire sur tous les onglets).

    J'espère avoir été plus clair et complet. Merci de votre aide.

    Cordialement

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut maxime17s et le forum
    Soit j'ai pas tout compris, soit tu as changé entre ta proposition initiale et maintenant;
    J'avais cru comprendre que le commentaire était du texte dans une colonne, mais toujours pas d'infos dessus. Donc j'ai décidé de prendre la colonne C ;
    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
    40
    41
    42
    43
    44
    45
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error GoTo Err_Workbook_SheetChange
    'Déclaration ==============================
    Dim F As Worksheet
    Dim Cel As Range
    Dim Plg As Range
    Dim Tab_v()
    Dim X As Long
    Dim Y As Long
    'MEI ======================================
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    If Intersect(Target, Columns(3)) Is Nothing Then GoTo Sort_Workbook_SheetChange
    Set Plg = Intersect(Target, Columns(3))
    'détermination des modifs =================
    ReDim Tab_v(1 To 2, 1 To Plg.Cells.Count)
    For X = 1 To UBound(Tab_v, 2)
        Tab_v(1, X) = Plg.Cells(X).Offset(0, -2)
        Tab_v(2, X) = Plg.Cells(X)
    Next X
    'traitement ===============================
    For Each F In ThisWorkbook.Sheets
        For X = 1 To UBound(Tab_v, 2)
            For Y = 1 To F.Range("A65536").End(xlUp).Row
                If F.Range("A" & Y) = Tab_v(1, X) Then
                    F.Range("C" & Y) = Tab_v(2, X)
                    Exit For
                End If
            Next Y
        Next X
    Next F
    'Sortie obligatoire =======================
    Sort_Workbook_SheetChange:
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        Exit Sub
    'Gestion des erreurs ======================
    Err_Workbook_SheetChange:
        MsgBox Err.Description, vbCritical + vbOKOnly, "ERREUR n°" & Err.Number
        Resume Sort_Workbook_SheetChange
    End Sub
    Sub test()
        Application.ScreenUpdating = True
        Application.EnableEvents = True
    End Sub
    À coller dans le module Thisworkbook
    la macro test ne sert qu'à remettre en route les gestions bloquées

    Réellement, je m'asume sur ce site en répondant à des problèmes. Mais ça me gonfle de chercher les données.
    A+

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut
    Bonjour,

    Cela fonctionne parfaitement. Je vous remercie vivement.

    J'ai un autre besoin similaire au premier. Cette fois je voudrais recopier les informations présentes dans les colonnes B à AA (et non juste la colonne C). Je pense qu'il suffit de faire une boucle FOR mais je ne sais pas où la mettre...

    Cordialement

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/09/2006, 14h47
  2. [VBA Excel] Un problème de recopie des données de l'userform
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 15h48
  3. comparaison de bases de données
    Par milielf dans le forum Access
    Réponses: 4
    Dernier message: 12/06/2006, 15h35
  4. Comparaison XML-base de donnée SQL
    Par mtaveau dans le forum XQUERY/SGBD
    Réponses: 11
    Dernier message: 02/05/2006, 04h45
  5. recopi des données d'une table dans une autre
    Par moicats dans le forum Access
    Réponses: 5
    Dernier message: 06/04/2006, 22h12

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