Fonction Range

Bonjour,

Je souhaite faire un code qui choisit aléatoirement une cellule dans la page "Alertes" et qui copie son contenu dans une cellule fusionnée de la page "Sujet" mais j'ai une erreur : "Erreur d'exécution 1004 la fonction 'Range' de l'objet '_global' a echoué"

Le code est le suivant, l'erreur vient de la dernière ligne "Range(Cell_1, Cell_2).Merge" mais je ne comprends pas car pour moi la syntaxe est bonne.

Merci pour votre aide.

Sub sujet_Alertes()

    Worksheets("Alertes").Activate

        While ActiveCell = Empty
        Randomize
        RandomNumber = Int((20 * Rnd) + 2)
        Range("A1").Offset(RandomNumber, 0).Select
        Selection.Copy
        Wend

    Worksheets("Sujet").Activate

    For i = 20 To 50
        If Range("A" & i).Value Like "I." Then
        Range("A" & i).Offset(0, 1).Select
        ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Cell_1 = Range("B" & i)
        Cell_2 = Range("D" & i)
        Range(Cell_1, Cell_2).Merge

        End If

    Next

End Sub

Bonjour

Il faut affecter pour un objet

essayes

        Set Cell_1 = Range("B" & i)
        Set Cell_2 = Range("D" & i)
        Range(Cell_1, Cell_2).Merge

Essayes directement

        Range(Range("B" & i), Range("D" & i)).Merge

oui effectivement ça marche merci !

Par contre j'ai modifié un peu le code et maintenant il me met comme erreur : "La méthode PasteSpecial de la classe Range à échoué"

Je ne trouve pas d'où ça vient car la macro s'exécute bien jusqu'à cette ligne PasteSpecial...

Sub sujet_Alertes()

    Worksheets("Alertes").Activate
    Range("A2").Select

        While ActiveCell = Empty
        Randomize
        RandomNumber = Int((20 * Rnd) + 2)
        Range("A2").Offset(RandomNumber, 0).Select
        Selection.Copy
        Wend

    Worksheets("Sujet").Activate

    For i = 20 To 50
        If Range("A" & i).Value Like "I." Then
        Range(Range("B" & i), Range("D" & i)).UnMerge
        Range("B" & i).Select
        ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Range(Range("B" & i), Range("D" & i)).Merge

        End If

    Next

End Sub

Bonjour

Supposition

Peut-être que le UnMerge te fait perdre le presse-papier

A tester

Sub sujet_Alertes()

  Worksheets("Alertes").Activate
  Range("A2").Select

  While ActiveCell = Empty
    Randomize
    RandomNumber = Int((20 * Rnd) + 2)
    Range("A2").Offset(RandomNumber, 0).Select
  Wend

  Worksheets("Sujet").Activate
  For i = 20 To 50
    If Range("A" & i).Value Like "I." Then
      Range(Range("B" & i), Range("D" & i)).UnMerge
      Range("A2").Offset(RandomNumber, 0).Copy
      Range("B" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
      Range(Range("B" & i), Range("D" & i)).Merge
    End If
  Next
End Sub

Effectivement c'était ça, merci!

Rechercher des sujets similaires à "fonction range"