VBA selon valeur exixtante

Bonjour,

Avec Option Explicit en tête de module ... tu dois déclarer toutes tes variables ...

Ou ... si tu veux te faciliter la vie comme le font beaucoup... tu supprimes Option Explicit ...

Je débute dans le VBA donc

J'ai supprimé la ligne "Option Explicit", la macro se lance.

Et j'ai un message d'erreur d'execution '9' ; L'indice n'appartient pas à la selection et en faisant débocage

j'arrive sur ceci.

Merci

macro2

Re,

Il faut t'assurer que ta seconde feuille porte bien le nom indiqué : Variable ....

Re,

Il faut t'assurer que ta seconde feuille porte bien le nom indiqué : Variable ....

Oui en effet, "Variable" était au pluriel.

Tout semble ok, je vais poursuivre avec les mises en forme conditionnelle.

Et je reviens pour la suite.

Merci

Re,

J'espère que les choses vont se dérouler correctement ...

Bonne Continuation ...

Re,

Il y a un bug que je ne comprends pas.

Lorsque je clique sur une cellule par exemple F10 et que je fais "Suppr" une partie de ma feuille se colorie en rouge et pas moyen de revenir en arrière

Bonjour à tous

Essaie de remplacer par ce code

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim Adr As String 
    If Target.Count > 1 Then Exit Sub
    Me.UsedRange.Cells.Interior.ColorIndex = 0   
    Set Cel = Me.UsedRange.Find(Target.Value, , xlFormulas, xlWhole)
    If Cel = "" Then
        Exit Sub
    End If
    If Not Cel Is Nothing Then
        Adr = Cel.Address
        Do
            If Cel.Address <> Target.Address Then Cel.Interior.ColorIndex = 3
            Set Cel = Me.UsedRange.FindNext(Cel)
        Loop While Cel.Address <> Adr
    End If
End Sub

J'ai rajouté :

If Cel = "" Then
        Exit Sub
End If

Cela devrait aller mieux

A+

Re,

Tu peux tester cette macro modifiée ...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim Adr As String
    If Target.Count > 1 Then Exit Sub
    Me.UsedRange.Cells.Interior.ColorIndex = 0
    Set Cel = Me.UsedRange.Find(Target.Value, , xlFormulas, xlWhole)
    If Not Cel Is Nothing Then
        Adr = Cel.Address
        Do
            If Cel.Address <> Target.Address Then Cel.Interior.ColorIndex = 3
            Set Cel = Me.UsedRange.FindNext(Cel)
        Loop While Cel.Address <> Adr
    Else
        Exit Sub
    End If
End Sub

Re,

Merci à tous, je vais pouvoir poursuivre

Re,

Merci pour tes remerciements ...

Bonjour,

Grace à votre aide à tous j'ai pu avancer grandement.

Il me reste un petit détail pour finaliser.

Une macro me permet d'identifier les nombres déjà presents (case coloriée en jaune).

Une seconde macro 'ERAS' déclenchée par un bouton me permet d'effacer les données et aussi de copier certaines données dans une autre feuille.

Le petit souci, c'est que lorsque je veux initialiser la feuille par la macro 'ERAS', les cases qui se sont coloriées en jaune restent présentes et je ne retrouve pas la couleur initiale.

Ci joint le fichier

Merci

3exemple-file9.xlsm (44.45 Ko)

Bonjour,

Tu peux utiliser Clear en lieu et place de ClearContents ...

Ci-joint ton fichier modifié ...

7exemple-file9.xlsm (40.12 Ko)

Merci,

J'ai utilisé 'ClearContents' afin de conserver la couleur de fond de mes cellules des colonnes F et I.

J'aimerais conserver cette mise en forme, mais à défaut je vais trouver une autre solution comme mettre une police de caractère à la place de la couleur de fond

De rien ...

Pour effacer selon tes règles ... Il va falloir que tes instructions soient plus précises et plus sélectives ...au cas par cas ...

Re,

Oui, donc le plus simple ce serait de jouer avec les couleurs de police, et non la couleur de remplissage.

De plus ça évitera de surcharger la macro

Re,

Oui, donc le plus simple ce serait de jouer avec les couleurs de police, et non la couleur de remplissage.

De plus ça évitera de surcharger la macro

Tu as raison ...

Par pure curiosité ... s'agit-il de tracking de stratégies de trading ...?

Bonjour,

Pour répondre à ta question oui il s'agit de trading.

Si tu es intéressé ou autre, je peux mettre mes liens vers ma chaine YT et Twitter

Après je ne sais pas si je peux mettre les liens ici...

Merci à tous, super forum d'entre aide

Bonjour,

Merci pour l'info ...

Le trading peut être un truc super passionnant ...!!!

Je ne connais pas les règles précises ... mais je pense qu'il est plus prudent de ne pas ajouter des liens ' à caractère publicitaire ' ....

Content d'avoir pu t'aider ..

Merci ... pour tes remerciements ...

Avec le nouveau Forum ... tu as la possibilité d'indiquer que tu as apprécié l'aide en cliquant sur le coeur ...en bas à droite ...

coeur

Re,

Dans la macro qui me permet d'identifier les nombres déjà présents (case coloriée en jaune), serait-il possible de la modifier afin qu'elle n'agisse que sur des nombres et non sur des termes (label des colonnes, cellules)?

Merci

Bonjour,

Ci-joint la petite modification requise ...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim Adr As String
    If Target.Count > 1 Then Exit Sub
    ' Restreindre la macro aux nombres '''
    If Not IsNumeric(Target) Then Exit Sub

    Set Cel = Me.UsedRange.Find(Target.Value, , xlFormulas, xlWhole)
    If Cel = "" Then
        Exit Sub
    End If
    If Not Cel Is Nothing Then
        Adr = Cel.Address
        Do
            If Cel.Address <> Target.Address Then Cel.Interior.ColorIndex = 6
            Set Cel = Me.UsedRange.FindNext(Cel)
        Loop While Cel.Address <> Adr
    End If
End Sub

En espérant que cela t'aide

Rechercher des sujets similaires à "vba valeur exixtante"