MYSTÈRE : Formule dans une cellule cachée qui s'efface

Fermé
PatInPatOut Messages postés 4 Date d'inscription mercredi 30 janvier 2013 Statut Membre Dernière intervention 17 septembre 2015 - 17 sept. 2015 à 15:19
PatInPatOut Messages postés 4 Date d'inscription mercredi 30 janvier 2013 Statut Membre Dernière intervention 17 septembre 2015 - 17 sept. 2015 à 17:51
Bonjour,
J'ai programmé une macro dans un fichier Excel 2010 pour exporter des données dans un autre fichier Excel. La macro va vérifier la valeur d'une cellule ("NbDeLigneFin"), dans le fichier où elle doit exporter les données et qui lui dicte la prochaine ligne disponible au tableau.

Il arrive que la formule de cette cellule disparaisse et je ne comprend pas comment car cette cellule est dans une colonne cachée, or l'usager ne connait même pas son existence. Je n'ai pas la valeur #valeur dans la cellule, la formule n'existe tout simplement plus.

Je me demande s'il est possible que lors d'un BUG, que la macro puisse supprimer la valeur ce cette cellule au lieu de simplement copier la valeur ?

J'ai essayé de simuler l'erreur, je pensais que si le fichier était ouvert par un autre usager que cela pourrais causer le problème, mais non et ça ne fait pas de sens car alors le fichier serait en lecture seul.

Voici la partie de la macro lié à cette cellule :

[/contents/446-fichier-sub Sub] ExporterDonnees()
'... plusieurs lignes de programmation...

ActiveSheet.Range("DataSUIVI").Select
    Selection.Copy
    OuvrirFichier CheminRepertoire & "BD\BD ÉLÉMENT BOIS\", "SUIVI JOB V1.xlsx"
    Workbooks(NomFichSUIVI).Activate
    Sheets("SUIVI").Select

'Stop
    Dim iRow As Integer
    Dim iRowFin As Integer
    iRow = Range("NbDeLigne")
    iRowFin = Range("NbDeLigneFin")
    Range("A" & iRowFin).Select 'todo: 873 ......
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, transpose:=False
    Range("NbDeLigneFin").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    
    Application.DisplayAlerts = True
    
End Sub



Merci
Patrick Sheehy

A voir également:

1 réponse

PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par PlacageGranby le 17/09/2015 à 15:39
Bonjour,

Il est presque impossible de trouver l'erreur sans savoir exactement ce qui la produit.

Voici quelque piste de recherche :
Est-ce qu'il est possible que la cellule source soit vide, donc rien n'est copié ?
Est-ce qu'une ligne vide dans les tableau peux fausser les variable nbligne

Souvent, ce n'est pas l'action qui est le problème mais les données sources qui ne corresponde pas à ce que l'action s'attendait de trouver.
Il faut penser a toute exception possible au niveau des données sources pour que l'action de plante pas.

Exemple : On valide que la donnée source n'est pas vide et on fait un message d'avertissement si c'est le cas.

Une cellule masquée ne garanti rien.
Exemple :
Écrivez dans une nouvelle feuille 1,2,3,4,5 de la cellule A1 à A5
Ensuite masquez de A2 à A4
Sélectionnez de A1 à A5 et on appuie sur supprimer.

Même si on ne voit pas les cellules de A2 à A4, elles perdent leur valeur.

Souvent, pour éviter ce problème, une colonne très loin sera plus en sécurité.
Mais pour protéger véritablement une cellule, il faut la verrouiller alors on sera à l'abri des utilisateurs les plus destructeurs.
0
PatInPatOut Messages postés 4 Date d'inscription mercredi 30 janvier 2013 Statut Membre Dernière intervention 17 septembre 2015
17 sept. 2015 à 17:51
Bonjour et merci pour votre réponse.

Je suis effectivement à la recherche de la source de cette anomalie afin d'appliquer la bonne intervention.

Il est vrai que je pourrais verrouiller la cellule, mais je doute que ce soit un usager qui l'ait effacé par erreur car il y'a d'autres colonnes et lignes cachées en dessous avec des formules qui sont demeurées intacte, seule la formule de la cellule nommée ("NbDeLigneFin") à été effacée.

C'est pourquoi je me questionne s'il est possible que la macro ait coupé la valeur de la cellule au lieu de la copier ?

Encore merci pour votre apport.

Patrick Sheehy
0