Ecriture d'un texte dans cellule suivant recherche d'un autre onglet

Bonjour à toutes et tous et tous mes voeux de macro pour cette nouvelle année

je cherche à comprendre et modifier cette macro que j'avais sur un précédent fichier (pas de moi bien sur)

j'ai un texte de référence dans une cellule "A2" d'un onglet 2 et je souhaite pouvoir écrire ok dans une cellule d'un onglet 1 mais correspondant a ma ligne de l'onglet 2

pour le moment la macro fonctionne mais toujours sur la dernière ligne du tableau et pas sur la ligne correspondante a ma cellule de référence

Merci pour votre aide

Sub validation()

'remplissage de la valeur OK dans la table
TRI = Range("A2")

Worksheets("DATA_GCR").Select
n = Cells(100, 1).End(xlUp).Row

For i = 1 To n
    If Cells(i, 1).Value = TRI Then
    ligne = i
    End If
Next

Cells(ligne, 54).Value = "OK"

End Sub

Bonjour

Sans savoir à quoi correspond la variable TRI, peut-être comme ceci

Sub validation()
Dim TRI
Dim lig as integer
'remplissage de la valeur OK dans la table

TRI = Worksheets("nomonglet2").Range("A2")

With Worksheets("DATA_GCR")
    On Error Resume Next
    lig = .Range("A:A").Find(TRI, LookIn:=xlValues, lookat:=xlWhole).Row
    If lig > 0 Then .Cells(lig, 54) = "Ok"
End With
End Sub

Remplacez nomonglet2 par le nom de votre onglet dans votre fichier

Cordialement

un grand merci pour le retour rapide

j'ai retrouvé TRI en passant et modifié la colonne de recherche, et ca marche impeccable

Sub validation()

Dim TRI As String
'Dim TRI
Dim lig As Integer
'remplissage de la valeur OK dans la table

TRI = Worksheets("DATA_Mail").Range("A2")

With Worksheets("DATA_GCR")
    On Error Resume Next
    lig = .Range("H:H").Find(TRI, LookIn:=xlValues, lookat:=xlWhole).Row
    If lig > 0 Then .Cells(lig, 54) = "Ok"
End With
End Sub

Bonsoir

la macro fonctionne mais j'ai un nouveau soucis lié a des doublons de ligne, j'ai plusieurs ligne avec les mêmes références

c'est un tableau que je ne peux pas anonymiser pour le moment

mais sinon que ma cellule A2 correspond a un code client, donc ce client à plusieurs demande d'intervention à des dates différentes mais la macro ne s'occupe pas des autres validation (ok) et ecrit toujours sur la meme ligne, comment puis je faire pour que si la ligne est déjà ok sur ma référence elle cherche la suivante vide ?

Bonjour

comment puis je faire pour que si la ligne est déjà ok sur ma référence elle cherche la suivante vide ?

Il faut adapter le code

la macro fonctionne mais j'ai un nouveau soucis lié a des doublons de ligne, j'ai plusieurs ligne avec les mêmes références

Les doublons de la valeur TRI sont toujours bien dans la colonne H ?
En gros on cherche toutes les valeurs TRI dans la colonne H et on met "oK" en colonne 54 de la même ligne. Juste ?

7classeur6.xlsx (30.72 Ko)

Bonjour

Pour plus de compréhension j'ai mis un fichier exemple,

j'ai en effet plusieurs sujet avec les mêmes références et cela de manière récurrente. donc je voudrais qu'il ne tienne pas compte des "OK" déjà en place mais uniquement de la ligne vide correspondant au projet en question (il ne peut pas avoir plusieurs projets identique non validé en meme temps)

Merci beaucoup

donc je voudrais qu'il ne tienne pas compte des "OK" déjà en place mais uniquement de la ligne vide correspondant au projet en question

Le code ne prendra en compte que le nom du projet en A2 de votre feuil2 et mettra le "OK" que la cellule soit vide ou non
exemple : si vous avez en A2 la ref projet K882207, le code mettra des Ok en ligne 4 à 7 et sur la ligne 8 vide

Ok pour cela ?
Si non, on peut ajouter une ligne de code pour ne pas mettre le OK si la cellule en contient déjà un

si il n'y pas d'autre possibilité, cela me convient, je pensais qu'une boucle de vérification était possible sur la colonne "vérification" et qu'il mettait le ok si vide

mais je prends bien sur

grace à vous j'en apprends tous les jours :D

si il n'y pas d'autre possibilité, cela me convient, je pensais qu'une boucle de vérification était possible sur la colonne "vérification" et qu'il mettait le ok si vide

Oui c'est possible comme je vous ai écrit avant, il suffit de rajouter une instruction.
Prenez ce code ci-dessous

Sub validation()
Dim TRI As String, prem As String
Dim c As Range

TRI = Worksheets("DATA_Mail").Range("A2").Value

With Worksheets("DATA_GCR")
    Set c = .Range("H:H").Find(TRI, LookIn:=xlValues)
    If Not c Is Nothing Then
        prem = c.Address
        Do
            If .Range(c.Address).Value = TRI And UCase(.Cells(c.Row, 54)) <> "OK" Then .Cells(c.Row, 54) = "OK"
            Set c = .Range("H:H").FindNext(c)
        Loop While Not c Is Nothing And c.Address <> prem
    End If
End With
End Sub

Remarques :
- Le code mettra des ok en majuscules.
- J'ai considéré le nom de vos feuilles comme décrit au début du fil et la colonne 54 contenant le OK

Oubliez pas de cloturer le fil si cela convient ---->

Cordialement

un grand grand merci

c'est bien cela, ca fonctionne impeccable (j'ai juste un doute car c'est un tableau issu d'une requête et je ne sais pas comment il va se comporter avec des nouvelles lignes, je vais tester cela

je touche au but, il me reste une autre macro en cours.

une très bonne journée à vous

Rechercher des sujets similaires à "ecriture texte suivant recherche onglet"