Verification de données puis ecriture.

  • Initiateur de la discussion Initiateur de la discussion maxim91350
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

maxim91350

Guest
Bonjour à tous,

Je suis un débutant sur Excel et on m'a demandé de faire quelque chose que je n'arrive pas a réaliser.
En fait je dois trouver une formule (ou macro peut être) qui vérifie si certaines données sont identiques pour recopier une partie des données dans une cellules particulière. Je ne sais pas si je suis clair, je vais donc illustrer mes propos par une image.

Excel.png

Et voici mon fichier excel.

Regarde la pièce jointe Classeur1.xlsx

Ce document est assez bref mais c'est pour comprendre le fonctionnement d'excel et pouvoir recommencer sur un document plus conséquent.

Cordialement.
 

Pièces jointes

  • Excel.png
    Excel.png
    24.1 KB · Affichages: 82
  • Excel.png
    Excel.png
    24.1 KB · Affichages: 80
  • Classeur1.xlsx
    Classeur1.xlsx
    8.4 KB · Affichages: 53
  • Classeur1.xlsx
    Classeur1.xlsx
    8.4 KB · Affichages: 58
Re : Verification de données puis ecriture.

Bonjour maxim91350 et bienvenue sur le forum,

Vois si le fichier joint répond à ton besoin :


VB:
Private Sub CommandButton1_Click()
Dim c As Range
Set c = Range("A2")
Do While c <> ""
  If c = c.Offset(1) And c.Offset(, 1) = c.Offset(1, 1) And c.Offset(, 4) = c.Offset(1, 4) Then c.Offset(, 2).Resize(2).Copy c.Offset(, 3)
  Set c = c.Offset(2)
Loop
End Sub
Cordialement,
 

Pièces jointes

Re : Verification de données puis ecriture.

Bonjour maxim,

Bienvenue sur XLD

si j'ai compris

Code:
Sub test()
    ligne = Range("A65536").End(xlUp).Row
    For i = 3 To ligne
        If Cells(i, 1).Value = Cells(i - 1, 1).Value And Cells(i, 2).Value = Cells(i - 1, 2).Value _
            And Cells(i, 5).Value = Cells(i - 1, 5).Value Then
            Cells(i, 3).Value = Cells(i - 1, 3).Value
            Cells(i, 4).Value = Cells(i - 1, 4).Value
        End If
    Next i
End Sub

Edit : Bonjour Softmama 😉
 
Re : Verification de données puis ecriture.

Bonjour le fil 🙂,
Par formules en F et G à glisser vers le bas, il ne restera plus qu'à faire un copier/coller de valeurs pour remplacer les valeurs existantes 😛
Bonne suite 😎
 

Pièces jointes

Re : Verification de données puis ecriture.

Bonjour Softmama et tototiti2008,

Tout d'abord merci pour vos réponses si rapides, la réponse de Softmama ne correspond pas exactement a ce que je cherchais même si le raisonnement est le bon (le probleme etant que cela copie les données de C2 en D2 et de C3 en D3 alors qu'il me fallait C2 en C3 et D2 en D3). Néanmoins je n'ai peut être pas été très très clair dans mes explications 🙂 mais le petit bouton est assez sympa comme procédé pour utiliser une macro (c'est un bouton de formulaire?)
Quand à tototiti2008 ta macro est exactement ce que je cherchais!!!

Merci milles fois! 😱
 
Re : Verification de données puis ecriture.

Bonjour JNP et merci à toi aussi de consacrer du temps pour m'aider! 🙂

Le résultat que tu m'as fourni était celui que j'avais réussi à trouver malheureusement le chef veut que cela se fasse automatiquement comme dans la macro de tototiti2008! Et couplé au bouton de Softmama c'est parfait!

Merci à vous!
 
Re : Verification de données puis ecriture.

Bonjour à tous,

Petite question supplémentaire, est-il possible de changer la couleur de ce que la macro a modifiée? par exemple écrire en rouge ce qu'elle a changé?

Cordialement, et merci d'avance.

Maxim91350
 
Re : Verification de données puis ecriture.

Re 🙂,
Peut-être ainsi 😛
Code:
Sub test()
Cells.Font.ColorIndex = 1
    ligne = Range("A65536").End(xlUp).Row
    For i = 3 To ligne
        If Cells(i, 1).Value = Cells(i - 1, 1).Value And Cells(i, 2).Value = Cells(i - 1, 2).Value _
            And Cells(i, 5).Value = Cells(i - 1, 5).Value Then
            Cells(i, 3).Value = Cells(i - 1, 3).Value
            Cells(i, 4).Value = Cells(i - 1, 4).Value
            Cells(i, 3).Font.ColorIndex = 3
            Cells(i, 4).Font.ColorIndex = 3
        End If
    Next i
End Sub
Bonne suite 😎
Ajout : Salut Marc 🙂
 
Dernière édition:
Re : Verification de données puis ecriture.

Bonjour à tous,

peut-être

Code:
Sub test()
    ligne = Range("A65536").End(xlUp).Row
    For i = 3 To ligne
        If Cells(i, 1).Value = Cells(i - 1, 1).Value And Cells(i, 2).Value = Cells(i - 1, 2).Value _
            And Cells(i, 5).Value = Cells(i - 1, 5).Value Then
            Cells(i, 3).Value = Cells(i - 1, 3).Value
            Cells(i, 3).Interior.ColorIndex = 3
            Cells(i, 4).Value = Cells(i - 1, 4).Value
            Cells(i, 4).Interior.ColorIndex = 3
        End If
    Next i
End Sub

Edit : bing, Bonjour Jean-Noël 🙂
ReEdit : la version de Jean-Noël prend soin d'enlever les couleurs avant exécution, ce qui est mieux si plusieurs exécutions sont prévues, en fonction de ton utilisation
 
Dernière édition:
Re : Verification de données puis ecriture.

Re =/

Petit problème, en fait je pensais que les lignes a verifier etait forcement l'une au dessus de l'autre mais finalement non.

Je dois donc trouver le moyen de faire faire à la macro le meme changement, mais si dans le tableau complet il y a des lignes semblables (par exemple si les colonne 2, 23, 5 de deux lignes sont identiques alors elles ecrit des valeurs dans les colonnes 10 et 27). J'espere m'etre fait compris ^^ (en me relisant je n'en suis pas sur =/)
 
Re : Verification de données puis ecriture.

Après recherches, je pense qu'il faut utiliser un vlookup pour qu'il recherche dans la colonne si deux valeurs sont identiques, qu'il fasse un 2eme vlookup pour la deuxième valeur à comparer, puis un troisième, pour qu'enfin il remplace les valeurs dans les deux autres cellules...
quelquechose du genre :

IF Application.WorksheetFunction.VLookup(Cells(i, 2).Value, Range("B1: B65536" )) and Application.WorksheetFunction.VLookup(Cells(i, 23).Value, Range("W1: W65536" )) and Application.WorksheetFunction.VLookup(Cells(i, 27).Value, Range("AA1: AA65536" )) then
Cells(i, 5).Value = Cells(i, 5).Value
Cells(i, 10).Value = Cells(i, 10).Value
Cells(i, 9).Value = Cells(i, 9).Value
Cells(i, 5).Font.ColorIndex = 3
Cells(i, 10).Font.ColorIndex = 3
Cells(i, 9).Font.ColorIndex = 3

mais ca ne marche pas parce que la formule ne doit pas être la bonne...


Merci d'avance pour votre aide.

Cordialement.
 
Re : Verification de données puis ecriture.

Non le tri ne fonctionne pas, car par exemple si je tri la colonne B (contenant des numéros) par ordre croissant, la colonne A (qui contient des désignation avec des lettres) est triée n'importe comment (un coup A un coup B puis A puis C etc)...


EDIT: Pardon le tri fonctionne en mettant plusieur options, mais il faut que la modification de la macro se fasse sur plusieurs lignes et non pas sur une ligne et celle du dessus [pas If Cells(i, 2).Value = Cells(i+1, 2) mais If Cells(i, 2).Value = Cells(i+ x, 2)]...
 
Dernière modification par un modérateur:
Re : Verification de données puis ecriture.

Re,

Pardon le tri fonctionne en mettant plusieur options, mais il faut que la modification de la macro se fasse sur plusieurs lignes et non pas sur une ligne et celle du dessus [pas If Cells(i, 2).Value = Cells(i+1, 2) mais If Cells(i, 2).Value = Cells(i+ x, 2)]...

Pas compris
Si tu tries tes lignes sur tes 3 champs clé, les lignes ayant des valeurs identiques sur ces champs vont se regrouper
dans ce cas, que tu compares avec la ligne du dessus ou celle 2 lignes au-dessus dans un groupe de 3 lignes regroupées revient au même, autant lire celle du dessus simplement, non ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
973
Retour