Problème sélection cellules

Résolu
Bonjour à tous,
voici la raison de ma présence:
dans excel 2007 pour ma macro je tape Sub Reset()

Sheets("renseignement client").Range("A2").MergeArea.ClearContents
Sheets("plan terrasse").Range("Q24").MergeArea.ClearContents

marche impec pour supprimer 2 cellules dans 2 feuilles différentes
si je veux supprimer plusieur cellules je tape

Sheets("renseignement client").Range("A2:A5").MergeArea.ClearContents
Sheets("plan terrasse").Range("Q24").MergeArea.ClearContents

j'ai une erreur d'exécution 1004

merci d'avance pour le dépannage

10 réponses

  1. Bonjour

    La méthode MergeArea ne fonctionne que sur une plage à cellule unique et revoie la plage fusionnée contenant cette cellule
    Donc
    Sheets("plan terrasse").Range("Q24").MergeArea.ClearContents
    est correct (Q3 ne contient qu'une cellule)
    Sheets("renseignement client").Range("A2:A5").MergeArea.ClearContents
    est incorrect "A2:A5" contient 4 cellules

    RQ1. Les cellules fusionnées sont souvent/toujours une source de problèmes
    RQ2. Pour effacer le contenu d'une plage fusionnée, il suffit de mettre une chaine vide dans sa première cellule. Exemple : le page B3:C5 est fusionnée et Range("B3").cells(1,1)="" efface son contenu

    Cdlmnt
    1. ça dépend de la configuration de tes cellules/plages fusionnées ou non, il te faudrait en dire un peu plus
      Ex1 : la plage A2:B5 ne contient pas de cellules fusionnées
      Range("A2:B5").ClearContents
      Ex2. les 8 cellules de la plage A2:B5 sont fusionnées
      Range("A2:B5").Cells(1,1)= ""

      RQ. marche impec pour supprimer 2 cellules > en fait tu ne supprimes pas des cellules, mais tu effaces leur contenu

      Cdlmnt
      1. ça avance
        le probleme ne vient pas (d'après moi) de la fusion des cellulles
        si je tape Sheets("plan terrasse").Range("Q24").MergeArea.ClearContents OK
        si je tape Sheets("plan terrasse").Range("Q24, Q28").MergeArea.ClearContents (donc, sauf erreur il ne s'agit pas de cellules fusionnées mais bien de 2 cellules distinctes)
        j'ai l'impression de dire une connerie, mais bon
        1. sauf erreur il ne s'agit pas de cellules fusionnées mais bien de 2 cellules distinctes
          Remplaces donc
          Sheets("plan terrasse").Range("Q24, Q28").MergeArea.ClearContents
          par
          Sheets("plan terrasse").Range("Q24, Q28").ClearContents

          RQ. Relis le post 1 (ou l'aide de vba) à propos de MergeArea

          Cdlmnt
          1. bonjour cc
            tjrs le meme probleme
            si je tape:
            Worksheets("renseignement client").Range("B1:B5, B11:B15, B8").ClearContents
            OK

            si je tape:
            Worksheets("renseignement client").Range("B1:B5, B11:B15, B8").ClearContents
            Worksheets("plan terrasse").Range("Q24, Q28").MergeArea.ClearContents
            erreur d'execution "1004" erreur definie par l'application ou par l'objet

            si je tape:
            Worksheets("plan terrasse").Range("Q24, Q28").MergeArea.ClearContents
            erreur d'execution "1004" erreur definie par l'application ou par l'objet

            si je tape:
            Sheets("plan terrasse").Range("Q24, Q28").ClearContents
            erreur d'execution "1004" impossible de modifier une cellule fusionnée

            si je tape:
            Worksheets("plan terrasse").Range("Q24").MergeArea.ClearContents
            OK

            ("Q24, Q28") sont 2 cellules fusionnées comme tu peux t'en douter
            ne s'agit il pas d'un probleme de syntaxe?
            1. Post4
              si je tape Sheets("plan terrasse").Range("Q24, Q28").MergeArea.ClearContents (donc, sauf erreur il ne s'agit pas de cellules fusionnées mais bien de 2 cellules distinctes)
              Post6
              ("Q24, Q28") sont 2 cellules fusionnées comme tu peux t'en douter
              ?????
              1. en tout cas merci pour ta patience cc
                en faite Q24,est composé se 6 cellules et Q28 est composé se 6 cellules
                voila voila
                1. en faite Q24,est composé se 6 cellules et Q28 est composé se 6 cellules
                  Si Q24 est la première cellule des 6 cellules fusionnées et idem pour Q28, tu fais ça en deux instructions
                  Range("Q24").Cells(1, 1) = ""
                  Range("Q28").Cells(1, 1) = ""

                  Cdlmnt
                  1. merci cc
                    probleme résolu
                    on ce retrouve (j'espere) pour mon nouveau post
                    kenavo