OVH Cloud OVH Cloud

Code VBA...

3 réponses
Avatar
Raphaël Désalbres
Bonjour,

Il m'arrive le problème suivant, en VBA...

J'ai plusieurs feuilles de calcul...

J'aimerais savoir comment faire pour que dans la colonne "G" de chaque
feuille on puisse entrer un numéro exclusif, qui ne se répète dans aucune
des colonnes "G" des autres feuilles

Si il y a un numéro répété, avertir avec un msgbox....

Merci,

Raphaël Désalbres

3 réponses

Avatar
AV
J'aimerais savoir comment faire pour que dans la colonne "G" de chaque
feuille on puisse entrer un numéro exclusif, qui ne se répète dans aucune
des colonnes "G" des autres feuilles
Si il y a un numéro répété, avertir avec un msgbox....


Dans les modules de chacune des feuilles :

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Count > 1 Then Exit Sub
If zz.Column <> 7 Or zz = "" Then Exit Sub
x = ActiveSheet.Name
y = zz.Value
For i = 1 To ActiveWorkbook.Sheets.Count
F = Sheets(i).Name
If F <> x Then
If IsNumeric(Application.Match(y, Sheets(F).Range("G:G"), 0)) Then
zz.Select
alert = MsgBox("Cette valeur existe en :" & vbLf _
& "G" & Application.Match(y, Sheets(F).Range("G:G"), 0) _
& " de la feuille ''" & F & "''", vbCritical + vbOKOnly, "")
Application.EnableEvents = False
zz = "" 'efface si valeur trouvée
Application.EnableEvents = True
Exit Sub
End If
End If
Next
End Sub

AV

Avatar
Raphaël Désalbres
Merci bien AV, tes solutions sont toujours très bonnes!!!

Cordialement,

Raphaël Désalbres


"AV" escreveu na mensagem
news:
J'aimerais savoir comment faire pour que dans la colonne "G" de chaque
feuille on puisse entrer un numéro exclusif, qui ne se répète dans
aucune


des colonnes "G" des autres feuilles
Si il y a un numéro répété, avertir avec un msgbox....


Dans les modules de chacune des feuilles :

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Count > 1 Then Exit Sub
If zz.Column <> 7 Or zz = "" Then Exit Sub
x = ActiveSheet.Name
y = zz.Value
For i = 1 To ActiveWorkbook.Sheets.Count
F = Sheets(i).Name
If F <> x Then
If IsNumeric(Application.Match(y, Sheets(F).Range("G:G"), 0)) Then
zz.Select
alert = MsgBox("Cette valeur existe en :" & vbLf _
& "G" & Application.Match(y, Sheets(F).Range("G:G"), 0) _
& " de la feuille ''" & F & "''", vbCritical + vbOKOnly, "")
Application.EnableEvents = False
zz = "" 'efface si valeur trouvée
Application.EnableEvents = True
Exit Sub
End If
End If
Next
End Sub

AV





Avatar
AV
Merci bien AV, tes solutions sont toujours très bonnes!!!


C'est incontestable.... une fois les très mauvaises enlevées !
;-)
AV