Macro VBA incomplète

  • Initiateur de la discussion Initiateur de la discussion skygoat76
  • 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 !

S

skygoat76

Guest
Bonjour,

J'ai une macro dans mon fichier (Cijoint.fr - Service gratuit de dépôt de fichiers)

Mon soucis est qu'elle a l'air de fonctionner une fois sur deux.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche, CelA, CelB As Range
Dim anneeA, anneeB, semaineA, semaineB As String

If Target.Column = 25 Then
    If Target = "" Then
        Range(Cells(Target.Row, 27), Cells(Target.Row, 30)).Interior.Color = RGB(125, 125, 125)
    Else
        Range(Cells(Target.Row, 27), Cells(Target.Row, 30)).Interior.Color = RGB(256, 256, 256)
    End If
End If

With ThisWorkbook.Sheets("ACTIONS")
    If UCase(Range("Y" & Target.Row).Text) = "OUI" Then
        
        [B]Set cellRecherche = .Columns("A").Find(Range("B" & Target.Row).Value, , xlValues, xlWhole, , , False)
        If Range("V" & Target.Row).Text = "Soldée" Then
            If Not cellRecherche Is Nothing Then cellRecherche.EntireRow.Delete
        Else
            If cellRecherche Is Nothing Then .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0) = Range("B" & Target.Row).Value
        End If
        
        Set cellRecherche = .Columns("B").Find(Range("H" & Target.Row).Value, , xlValues, xlWhole, , , False)
        If Range("V" & Target.Row).Text = "Soldée" Then
            If Not cellRecherche Is Nothing Then cellRecherche.EntireRow.Delete
        Else
            If cellRecherche Is Nothing Then .Range("B" & .Rows.Count).End(xlUp).Offset(1, 0) = Range("H" & Target.Row).Value
        End If[/B]
    
        Set cellRecherche = .Columns("C").Find(Range("I" & Target.Row).Value, , xlValues, xlWhole, , , False)
        If Range("V" & Target.Row).Text = "Soldée" Then
            If Not cellRecherche Is Nothing Then cellRecherche.EntireRow.Delete
        Else
            If cellRecherche Is Nothing Then .Range("C" & .Rows.Count).End(xlUp).Offset(1, 0) = Range("I" & Target.Row).Value
        End If
    
    End If
End With
End Sub

Le bout de code en gras est mon problème.

Vous pourrez voir que mon fichier a plusieurs onglets : "LUP VIE SERIE" et "ACTIONS". Et normalement, la macro devrait copier des valeurs d'un onglet à l'autre...

Or, elle le fait de façon hasardeuse...
 
Re : Macro VBA incomplète

Salut skygoat76 et le forum
Je suppose que c'est la Worksheet_Change de la feuille "LUP VIE SERIE" ?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche, CelA, CelB As Range
Dim anneeA, anneeB, semaineA, semaineB As String
Tu déclares seulement CelB en plage de cellule et semaineB en chaîne, les autres étant en Variant ?

Pourquoi ne pas limiter le déclenchement de la macro aux colonnes Y (25) et V (22) ?
Vous pourrez voir que mon fichier a plusieurs onglets : "LUP VIE SERIE" et "ACTIONS". Et normalement, la macro devrait copier des valeurs d'un onglet à l'autre...
Or, elle le fait de façon hasardeuse...
Non, pour ça, il faudrait que le fichier soit accessible sans mot de pass 😱
Elle ne peut agir de manière hazardeuse : Excel fait toujours ce qu'on lui demande de faire et quelques (rares) fois ce qu'on voudrait qu'il fasse.
A+
 
Re : Macro VBA incomplète

J'ai retiré le mot de passe : Cijoint.fr - Service gratuit de dépôt de fichiers

En déclarant ainsi, cela ne signifie pas que cellRecherche, CelA et CelB sont Range ??? si non, c'est peut-être un début de réponse...

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche, CelA, CelB As Range
Dim anneeA, anneeB, semaineA, semaineB As String

Pourquoi ne pas limiter le déclenchement de la macro aux colonnes Y (25) et V (22) ?

J'ai "bidouillé" la macro (car je suis super novice) pour qu'elle recopie le contenu des cellules des colonnes B, H et I.

A l'origine, la macro n'était prévu que pour la colonne I...

Merci pour votre aide.
 
- 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
7
Affichages
182
Réponses
9
Affichages
509
Retour