Sélection cellules

Anonyme
2024-08-13T14:12:58+00:00

Bonjour,

J’ai créé une macro qui fonctionne mais que dans un sens. Je m’explique : si le mot « Office » se trouve soit en E6, E9, E12…cela fonctionne. Cependant, si le mot « Office se trouve en E7, E9, E13…les scores ne sont pas à leur place respective. J’ai pensé à une macro permettant de sélectionner les deux parties. Seulement, je bute sur la sélection. Voir macro ci-dessous. Les lignes en "Rouge" sont signalées en défaut.

Merci pour votre aide. Cordialement.

Private Sub Worksheet_Activate()

    Sheets("Score").Unprotect

    Sheets("Inscrit").Unprotect

' Attribution points "Office"

Dim i As Integer

    If Not Intersect(Target, [E6,E9,E12,E15,E18,E21,E24,E27]) Is Nothing Then

        For i = 6 To 28

            If Cells(i, 5) = "Office" Then

                Cells(i, 5).Offset(0, 1).Value = 6

                Cells(i, 5).Offset(1, 1).Value = 13

            End If

            Range("A17").Select

        Next i

    End If

    If Not Intersect(Target, [E6,E9,E12,E15,E18,E21,E24,E27]) Is Nothing Then

        For i = 6 To 28

            If Cells(i, 5) = "Office" Then

                Cells(i, 5).Offset(0, 1).Value = 13

                Cells(i, 5).Offset(-1, 1).Value = 6

            End If

            Range("A17").Select

        Next i

    End If

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

9 réponses

  1. Anonyme
    2024-08-13T20:41:08+00:00

    Bonsoir,

    J'ai trouvé un début de solution. J'ai réussi à distinguer les 2. Les 2 codes fonctionnent mais séparément. Si tu as une solution pour que les 2 codes marchent en même temps, je prends.

    Private Sub Worksheet_Activate()
    Sheets("Score").Unprotect
    Sheets("Inscrit").Unprotect
    Dim i As Variant

    i = Rows("6" Or "9" Or "12" Or "15" Or "18" Or "21" Or "24" Or "27")

        For i = 6 To 28  
            If Cells(i, 5) = "Office" Then  
                Cells(i, 5).Offset(0, 1).Value = 6  
                Cells(i, 5).Offset(1, 1).Value = 13  
            End If  
        Next i  
    

    ' i = Rows("7" Or "10" Or "13" Or "16" Or "19" Or "22" Or "25" Or "28")
    ' For i = 6 To 28
    ' If Cells(i, 5) = "Office" Then
    ' Cells(i, 5).Offset(0, 1).Value = 6
    ' Cells(i, 5).Offset(-1, 1).Value = 13
    ' End If
    ' Next i

    Cordialement

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2024-08-13T17:42:54+00:00

    Au départ, la macro était quand Office était en C7 par exemple. Cela fonctionnait mais je n'avais pas fais d'autre essais. Ma question : est-ce qu'il y a un moyen de faire fonction les 2 solutions ?

            For i = 6 To 28

                If Cells(i, 5) = "Office" Then

                    Cells(i, 5).Offset(0, 1).Value = 6

                    Cells(i, 5).Offset(1, 1).Value = 13

                End If

                Range("A17").Select

            Next i

        End If

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2024-08-13T16:24:42+00:00

    Je ne comprends pas ce que tu veux faire avec cette ligne.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2024-08-13T16:16:44+00:00

    Bonjour Daniel,

    OK. Est-ce qu'il y a une solution ?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. DanielCo 107.7K Points de réputation
    2024-08-13T15:30:26+00:00

    Bonjour,

    Il n'y a pas de variable "Target" dans la macro Worksheet_Activate.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire