Erreur 1004 action innaplicable à une cellule fusionnée

Bonjour à tous

Il m'arrive une chose bizarre.

J'ai un bogue qui sort sur le fichier joint alors que pour des fichiers similaires pas de bogue

j'ai toujours cette erreur 1004:

"Action innaplicable à une cellule fusionnée"

erreur reitest

et lorsque je débogue une ligne est en surbrillance

debogage reitest

Ce qui est étrange c'est que la cellule désignée , selon moi A18 sur la feuille AK1C 2 n'est pas fusionnée.

Savez-vous ce qui cloche svp?

je tourne en rond depuis ce matin et je ne comprends pas

Merci d'avance

Siga

14reitest.xlsm (81.99 Ko)

Bonjour

difficile de diagnostiquer car ton code VBA est protégé

en plus tu ne sembles pas avoir de cellules fusionnées

utilise debug.print pour bien affiner les valeurs de ta cellule

OOPS PARDON POUR mot de passe

je pensais l'avoir supprimer quelle quiche !!

Je vais reposter un fichier sans mot de passe

Siga

Je viens de poster le fichier sans mot de passe

Merci encore à Steelson

Siga

Où est ta feuille AK1C2 Worksheets("AK1C2") ??

J'aurais pu le voir sans macro !! sauf si xlveryhidden ...

Bonjour

voir la protection des feuilles

et changer les Offset par Range

ex:

With Feuil5 ' = CodeName
    .Unprotect
    .Range("A1:K12").ClearContents
    .Protect
End With

A+

Maurice

Bonsoir Siga,

je te retourne ton fichier modifié :

25reitest.xlsm (79.79 Ko)

dhany

Bonjour à tous,

@Dhany j'ai vu ta proposition :

je ne comprends pas tout car clairement j'ai un niveau assez faible en VBA

( D'ailleurs si vous avez des lectures à me proposer, c'est volontiers).

Si j'ai bien compris tu proposes de déproteger chaque feuille avant effacement puis de les reproteger après effacement sans pour autant toucher à la mise en forme ?

@Steelson, désolé je n'ai pas compris le

debug.print

, je ne vois pas du tout de quoi il s'agit

En revanche, je ne comprends pas pourquoi il y a ce bogue.

Je poste un nouveau fichier similaire où le même code que réitest dans sa version initiale fonctionne

Sauriez-vous me dire pourquoi?

9simireitest.xlsm (66.82 Ko)

@Steelson, désolé je n'ai pas compris le

debug.print

, je ne vois pas du tout de quoi il s'agit

D'abord, toutes mes excuses pour ma réponse, je n'avais pas vu que les feuilles étaient cachées alors même que je le signalais comme hypothèse ... une bourde !

Ensuite, quand un programme VBA fonctionne mal, n'hésite pas à utiliser cette ligne de code debug.print ma_variable qui permet souvent de savoir ce qui se passe (mal)

Bonjour

tu a mal compris ma macro

car le offset ne marche pas dans ton cas

a voir la nouvelle macro

et évite les accents

Sub r?inig?_Cliquer()
Dim Nlig&
    With Worksheets("AK2C1")
        .Unprotect
           Nlig = .Range("A1").End(xlDown).Row
        .Range("A1:N" & Nlig).ClearContents
        .Protect
    End With

    With Worksheets("AK2C2")
        .Unprotect
           Nlig = .Range("A1").End(xlDown).Row
        .Range("A1:N" & Nlig).ClearContents
        .Protect
    End With
End Sub

A+

Maurice

Bonsoir Siga,

Option Explicit

Private Sub réini(FX$)
  Dim dlig&
  With Worksheets(FX) 'sur la feuille FX
    'dlig : dernière ligne utilisée, selon la colonne B
    dlig = .Cells(Rows.Count, 2).End(xlUp).Row
    If dlig > 17 Then
      .Unprotect 'déprotège la feuille FX
      .Range("A18:K" & dlig).ClearContents
      .Protect 'reprotège la feuille FX
    End If
  End With
End Sub

Sub réini1_Cliquer()
  réini "AK1C2"
End Sub

quand tu cliques sur ton bouton fléché C2, ça lance la macro réini1_Cliquer() ; cette sub appelle alors la sub privée réini() en lui envoyant le texte "AK1C2" ; ce texte est le nom de la feuille sur laquelle ça va agir, et ce texte est mis dans la variable FX.

tout le travail est fait dans le bloc With Worksheets(FX) .. End With ; et cela pour la feuille FX.

détection de la dernière ligne utilisée, selon la colonne B ; note que si le tableau est vide : dlig = 17 ➯ on fait rien du tout


si y'a au moins une ligne de données dans le tableau, on fait ce qui est dans le bloc If .. End If

exemple : si y'a 3 lignes, dlig = 20, donc :

* on déprotège la feuille (tu devras compléter le code VBA avec ton mot de passe)

* sur la feuille FX, on efface A18:K20 (contenu seulement, sans toucher à la mise en forme)

* on protège la feuille (tu devras compléter le code VBA avec ton mot de passe)


Sub réini2_Cliquer()
  réini "AK1C6"
End Sub

Sub réini3_Cliquer()
  réini "AK1C7"
End Sub

* la sub réini2_Cliquer() fait la même chose pour la feuille "AK1C6"

* la sub réini3_Cliquer() fait la même chose pour la feuille "AK1C7"


Sub Réinigé_Cliquer()
  réini "AK1C2": réini "AK1C6": réini "AK1C7"
End Sub

la sub Réinigé_Cliquer() fait successivement la même chose

pour chacune des 3 feuilles "AK1C2" ; "AK1C6" ; "AK1C7"


ainsi, c'est la sub privée réini() qui fait tout le travail ; elle n'est jamais appelée directement par l'utilisateur, seulement par les autres subs (et via les boutons de ta feuille "MENU").

dhany

ajout : lis d'abord mon post précédent, puis celui-ci :

tu a écrit :

si vous avez des lectures à me proposer, c'est volontiers

j'connais pas d'livre VBA, mais tu peux commencer par là :

cours vba xlp

tu peux aussi faire une recherche google avec ces 3 mots : « cours vba gratuit »

bonne chance !

dhany

Bonjour à tous

Merci pour vos suggestions

@ Archer et @ Dhany je vous ai envoyé des messages privés pour des précisions sur vos réponses.

Je me vois pas appliquer une solution sans la comprendre

à +,

Siga

Rechercher des sujets similaires à "erreur 1004 action innaplicable fusionnee"