Comment ramener des données selon un critère?

Bonjour,

J'ai cherché mais je ne trouve pas ma solution.

Je suis novice et ne connait rien au macro.

Il me faut ramener des données contenues dans des cellules sur un tableau 2012 et le ramener sur un tableau 2013 : que si le Code vigne (numéros de la parcelle) est le point commun.

J'ai 25 colonnes différentes à renseigner comme ça.

La présentation des champs est rigoureusement la même sur les 2 tableaux.

Merci de m'aider ou de m'orienter vers le sujet si ce tème a déjà été solutionné.

Cordialement.

36selections-2012.zip (61.80 Ko)
37selection-2013.xlsx (26.58 Ko)

Bonjour,

Voila comment j’ai procédé :

1) Copie de la SELECTION 2012 dans une feuille du classeur "SELECTION 2013".

2) Tri des données par ordre croissant dans les 2 feuilles

3) Dans la feuille "publi contrat", modification des données de la colonne A (Code vigne) pour obtenir un format nombre (galère !).

4) Lancement du programme de copie

La feuille "publi contrat" a été mise à jour avec les données de "SELECTION 2012".

A+

Vraiement merci, c'est bien ce que je recherche mais j'ai pas compris comment t'as fait?


C'est quoi le programme de copie?

Le code VBA permettant la copie des données se trouve dans le module de la Feuill 1 (publi contrat).

A+

Je sais que je vais te déprimer car ne sachant pas ce qu'est une macro. j'aimerai reproduire celle-ci pour croiser d'autres tableaux mais je vois pas comment ça marche?

Merci pour votre patience.

Patricia

C’est gentil de t'inquiéter de ma santé mentale.

Par contre, si tu ne sais pas ce qu'est une macro, j’ai bien peur que se soit ton moral qui prenne un coup.

Je vais tenter de t’expliquer le fond de l’affaire.

Pour effectuer la mise à jour, tu passes en revue chacun des codes vigne de la feuille source ("SELECTION 2012") et tu cherches un code équivalent dans la feuille cible ("publi contrat ").

Si tu trouves une cellule qui contient la même valeur, tu effectues la copie des 24 colonnes attenantes.

Voici le programme qui effectue ce travail. J’ai essayé de commenter au mieux pour te faciliter la lecture.

Option Explicit
Sub Copie()
Dim WsC As Worksheet
Dim DerLigne As Long
Dim C As Range, Cel As Range
Dim firstAddress As String
    'On désactive l'actualisation de l'écran afin de gagner du temps à l'exécution du programme
    Application.ScreenUpdating = False
    'Dans la suite du programme, la variable WsC représentera la feuille "publi contrat"
    Set WsC = Worksheets("publi contrat")
    'Dans la suite du programme, les plages précédées d'un point feront référence à la feuille "SELECTION 2012"
    With Worksheets("SELECTION 2012")
        'On recherche la dernière ligne renseignée dans la colonne A de la feuille "SELECTION 2012"
        DerLigne = .Range("A" & Rows.Count).End(xlUp).Row
        'On balaye la plage renseignée
        For Each Cel In .Range("A2:A" & DerLigne)
            'et pour chaque cellule de la colonne A (Code Vigne), on cherche un équivalent dans _
            la colonne A de la feuille "publi contrat"
            Set C = WsC.Columns(1).Find(Cel.Value, LookIn:=xlValues, lookat:=xlWhole)
            'Si on trouve une valeur identique,
            If Not C Is Nothing Then
                'On relève l'adresse de cette cellule (ce repère permettra d'éviter de prendre en compte plusieurs _
                fois la même cellule dans la boucle Do..Loop ).
                firstAddress = C.Address
                Do
                    'On effectue la copie
                    Cel.Offset(0, 1).Resize(1, 24).Copy Destination:=C.Offset(0, 1)
                    'et on passe à la donnée suivante
                    Set C = WsC.Columns(1).FindNext(C)
                Loop While Not C Is Nothing And C.Address <> firstAddress
            End If
        Next Cel
        MsgBox "Terminé"
    End With
    'On réactive l'actualisation de l'écran.
    Application.ScreenUpdating = True
End Sub

Mais avant de pouvoir utiliser le programme, il faut que tu prépares correctement l’environnement.

C’est ce que je t’ai signalé précédemment.

• Copie de la SELECTION 2012 dans une feuille du classeur "SELECTION 2013".

• Tri des données par ordre croissant dans les 2 feuilles

• Dans la feuille "publi contrat", modification des données de la colonne A (Code vigne) pour obtenir un format nombre (galère !).

J’insiste sur le dernier point car si tes données ne sont pas strictement similaires, le programme ne parviendra pas à effectuer la comparaison.

J’espère avoir répondu à ton attente.

A+

Rechercher des sujets similaires à "comment ramener donnees critere"