pb de régles de calculs / qui ont la bougeotte

sergiuspollux

XLDnaute Junior
bonjour à tous.
Je suis à la recherche d'une solution sur des règles de calcul qui ne restent pas.
le classeur suivant via une macro fait appel à un fichier vendredi.txt
je récupère les données pour les placer dans un onglet "Recup_vendredi_txt"
de la, une boucle conditionné déplace les éléments scpj22A sur l'onglet Vendredi.
De l'onglet calcul j'essaie de recupérer des infos de l'onglet vendredi, le problème qui se pose, si je mets à blanc les onglets vendredi et recup_vendredi_txt. les cellules de calcul de l'onglet calcul se mettent à zero, jusque là normal, mais si je relance la macro de nouveau les cellules de l'onglet calcul se mettent à #Ref! . pourquoi je l'ignore.

si quelqu'un pouvait m'indiquer comment figer ces règles de calcul. et qu'elles soient actives en permanence.
"Est ce la boucle qui génère ce problème ?"

merci.

Serge.
 

Pièces jointes

  • classeur1.zip
    14.5 KB · Affichages: 19
  • classeur1.zip
    14.5 KB · Affichages: 15
  • classeur1.zip
    14.5 KB · Affichages: 13

Xtian_Québec

XLDnaute Occasionnel
Re : pb de régles de calculs / qui ont la bougeotte

Re sergiuspollux, le forum,

habituellement, lorsqu'on a une formule de calcul et que l'on "supprime" des lignes ou feuilles qui font référence à cette formule, #REF! apparaît puisque la formule ne trouve plus ses références...

Solution possible:
1) Revoir ton code et au lieu de supprimer les lignes ou feuilles, utilise "effacer" les données sans supprimer les lignes.

2) Ajoute dans ton code ta formule et ajoute la à l'endroit désiré dans ta feuille après avoir supprimer les lignes.

J'avais le même problème dans un des mes fichiers et voici le code que j'utilise pour solutionner ce problème.

Range("DA1").Select
ActiveCell.FormulaR1C1 = "=SUBTOTAL(3,R[1]C[-104]:R[49999]C[-104])"

Espérant avoir répondu à ta question

Bonne fin de journée

Xtian_Québec
@+++
 

Xtian_Québec

XLDnaute Occasionnel
Re : pb de régles de calculs / qui ont la bougeotte

RE sergiuspollux, le forum,

J'ai vérifié to code et j'ai remarqué ce bout de code:
Selection.Delete shift:=xlUp

Je te conseille d'utiliser ClearContents au lieu de Delete, c'est probablement ce qui cause ton problème.

Xtian_Québec
@+++
 

sergiuspollux

XLDnaute Junior
Re : pb de régles de calculs / qui ont la bougeotte

bonsoir,

Merci Xitian_Quebec pour tes recherches et tes solutions , mais là vraiment je suis planté, je ne maitrise pas bien, et mois qui croyait arrivé au bout , boum ba da boum,
j'ai essayé de mettre clearContents mais la boucle ne fonctionne plus. je n'ai pas très bien compris non plus ta formule et ou et comment la placer.

mon problème doit y remettre en question la boucle qui a été élaborée.

je suis desepéré ! ! ! ! ! !
 

Xtian_Québec

XLDnaute Occasionnel
Re : pb de régles de calculs / qui ont la bougeotte

Re sergiuspollux , le forum

j'ai revérifié ton code pas à pas et j'ai corrigé ton problème avec le changement suivant dans ton code:

'Coupe la selection
Selection.Copy
au lieu de
'Coupe la selection
Selection.Cut

Xtian_Québec
@+++
 

sergiuspollux

XLDnaute Junior
Re : pb de régles de calculs / qui ont la bougeotte

ok merci ca fonctionne,la il n'y a aucun problème de #ref!, j'ai rajouté une ligne de code en commentaire qui faisait boucler sur la première ligne.

je dois enchaine sur une boucle pour scpj22I
et sur une boucle scpj24A
je devrai faire la meme chose pour scqj22xx

le problème c'est je n'arrive pas a mettre en pratique le placement d'un pointeur pour executer cette boucle pour les traitements suivants"scpj22I scpj24A et j'ai aussi les scqj22xx"
dans l'etat actuel il ne fait que les scpj22A

Cela fait 3 heures que je suis dessus,"je ne suis plus étanche" je ne vois pas comment faire
je joins une nouvelle archive
merci d'avance.

Serge.
 

Pièces jointes

  • classeur1.zip
    22.1 KB · Affichages: 14
  • classeur1.zip
    22.1 KB · Affichages: 14
  • classeur1.zip
    22.1 KB · Affichages: 16

Xtian_Québec

XLDnaute Occasionnel
Re : pb de régles de calculs / qui ont la bougeotte

Re Serge, le forum,

Essai la fonction Find avec la valeur recherchée, ex SCPJ24A. Lorsque le code trouve la valeur, identifie la ligne comme suit;

nRow = Activecell.Row

De là, tu peux repartir ton code à partir de cette ligne. Ce que tu dois faire c'est remplacer deux paramêtres dans ton code
1 la ligne de départ et
2 la valeur à traitée

Au lieu d'inscrire If ActiveCell.Offset(0, 0) = "SCPJ22A", tu peux inscrire
If ActiveCell.Offset(0, 0) = Sheets("Calcul").range("A1").value

Alors si tu met SCPJ22A dans A1 de la feuille de calcul, ton code s'exécutera et traitera les données de SCPJ22A. Si tu inscrit SCPJ24A, les données de SCPJ24A seront traitées.

C'est peut-être pas exactement ce que tu désirais comme réponse mais avec la fonction Find et les explications ci-dessous, tu pourrais rouler ta bosse...

Bonne Chance

Xtian
 

sergiuspollux

XLDnaute Junior
Re : pb de régles de calculs / qui ont la bougeotte

bonjour,
Merci de tes recherches.
désolé du contretemps,

je me suis remis dessus, mais je ne maitrise vraiment pas bien le truc.
je commence seulement, et la a force de bidouiller je suis perdu.
j'ai essayé la ligne :
If ActiveCell.Offset(0, 0) = Sheets("Calcul").range("A1").value

ca me met erreur de compilation.
" j'ai juste mis en txt la ligne d'origine et remplacé par la nouvelle
-------------------------------
pour ta remarque, j'ai juste à mettre en A1 sur Calcul le valeur a traiter ?
1 la ligne de départ et
2 la valeur à traitée

le problème c'est que je peux avoir plusieurs valeurs a traiter et là ce n'est vraiment plus automatiques.

comment faire ??
merci

Serge.
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 047
Membres
104 011
dernier inscrit
dfr