Retablissement des formules

phmubdf38

XLDnaute Nouveau
Bonsoir à tous,

Je travaille sur 2 classeurs A & B. Je fais ma saisie dans le classeur A sur la feuille F. Après validation B s'ouvre, je supprime l'ancienne feuille F dans le classeur B et je colle la nouvelle F depuis A dans B pour traiter les données. A se ferme et B reste ouvert.
Le probleme : les formules qui concernent F dans les autres feuilles du classeur B affichent ref#.
La question : comment 'maintenir en vie' mes formules entre la suppression et l'importation de F dans B ?

PS j'ai décoché "mise à jour des liaisons...." à l'enregistrement de B. Lorsque je le réouvre la case est à nouveau cochée...

Merci par avance pour votre aide précieuse
 

jeanpierre

Nous a quitté
Repose en paix
Re : Retablissement des formules

Bonsoir phmubdf38, et Bienvenue sur le forum,

Comment fais-tu précisément ton copier de la feuille ?

Sinon, tu fais ensuite Collage spécial et tu coches Formules, mais cela dépend de ton copié....

A te lire là-dessus.

Bonne soirée.

Jean-Pierre
 

phmubdf38

XLDnaute Nouveau
Re : Retablissement des formules

bonjour jeanpierre,

Il n'y a aucun lien entre A et B
La copie de la feuille se fait par par une macro VB. Ce ne sont pas les données mais la feuille entière F qui est copiée ( 'créer une copie') de A vers B. Avant le déplacement, F dans B est supprimée. Les formules lient les diverses feuilles de B à l'ancienne F de B. Quand la nouvelle F (qui porte le meme nom bien sur) est dans B les formules de B renvoient ref#.

cordialement

philippe
 

jeanpierre

Nous a quitté
Repose en paix
Re : Retablissement des formules

Bonjour philippe,

Sans voir ton code, voire même un petit extrait de tes fichier (sans données confidentielles de type Noms, adresses, téléphones...), il est difficile de t'en dire plus.

Bonne journée.

Jean-Pierre
 

phmubdf38

XLDnaute Nouveau
Re : Retablissement des formules

re bonjour JP

je te remercie pour l'intérêt que tu portes à ma question.

Voici le contexte de l'application : un module contenat les classeurs A et B est fournit à une tierce partie. Cette tièrce partie utilise le modele A pour saisir les données qu'elle veut transmettre. B est également un modèle qui crée un Classeur C d'envoi qui m'est transmis par mail. le point commun entre ces 3 classeurs est la feuille F. Sinon chaque classeur a des fonctionnalités différentes.

A=avbf_modele.xls
B=Envoi_modele.xls
C= le nom créé automatiquement du classeur qui va être transmis (variable FL)

F=la feuille "Bordereau de dépôt" qui est concernée par les formules de B uniquement.Ce sont ces formules qui ne sont pas rétablies après la copie dans B.

Voici le code de la copie :

......
response = MsgBox("Vous allez enregistrer votre saisie. Le classeur va être renommé et déplacé dans le dossier SAUGARDE DES ENVOIS.Veuillez confirmer", vbYesNo)
If response = vbNo Then Exit Sub
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim FL As String
FL = Range("societe") & Range("client") & Format$((Date), "dd_mm_yy") & "_Faux_vers_***.xls"
Sheets("bordereau de dépôt").Range("z1") = FL
Fm = "envoi_modele.xls"

Fichier_Maitre = "envois\" & Fm

Dim varChemin As String
Dim varDestination As String
Dim varNomFichier As String
Dim varMessage As String

varNomFichier = ActiveWorkbook.Name
varChemin = ActiveWorkbook.FullName
varChemin = Left(varChemin, InStrRev(varChemin, "\"))
varChemin = Left(Left(varChemin, Len(varChemin) - 1), InStrRev(Left(varChemin, Len(varChemin) - 1), "\"))
varDestination = varChemin & Fichier_Maitre
'-----------------------------------------------------------------
'1-ouvrir le modele B
Workbooks.Open Filename:= _
varDestination
'2-supprimer la feuille dépot dans B
Sheets("Bordereau de dépôt").Select
ActiveWindow.SelectedSheets.Delete
'3-déplacer la feuille dépot de l'envoi ' A->B sans doute est-là que se pose le problème ? [/B]
Windows("avbf_modele.xls").Activate
Sheets("Bordereau de dépôt").Unprotect
Sheets("Bordereau de dépôt").Copy Before:=Workbooks("Envoi_modele.xls"). _
Sheets(1)
ActiveSheet.Shapes("b_bas").Delete
ActiveSheet.Shapes("b_haut").Delete
ActiveSheet.Shapes("bder").Delete
Range("B9") = "Bordereau à envoyer à la ****"
Range("C2") = ""
With Worksheets("bordereau de dépôt").Buttons
.Visible = False
End With
Sheets(2).Visible = True
Sheets(3).Visible = True
Sheets(1).Visible = True
Sheets(1).Select
'-----------------------------------------------------------------

Fichier_Maitre = "ENVOIS\sauvegarde_envois\" & FL
varDestination = varChemin & Fichier_Maitre


' création de C
ActiveWorkbook.SaveAs Filename:= _
varDestination _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Quit
Exit Sub
 

phmubdf38

XLDnaute Nouveau
Re : Retablissement des formules

Bonsoir phmubdf38, et Bienvenue sur le forum,

Comment fais-tu précisément ton copier de la feuille ?

Sinon, tu fais ensuite Collage spécial et tu coches Formules, mais cela dépend de ton copié....

A te lire là-dessus.

Bonne soirée.

Jean-Pierre

Bonsoir JP,

j'ai suivi tes premiers conseils en supprimant le déplacement de la feuille au profit de celui des données seules. J'ai pu règler les nouveaux bugs assez rapidement et cela fonctionne. Donc MERCI à toi. Cependant, je me permet de reformuler ma question :

Les formules pointant vers une feuille supprimée sont-elles définitivement HS ?

Cordialement

Philippe
 

jeanpierre

Nous a quitté
Repose en paix
Re : Retablissement des formules

Re,

Pour répondre à ta dernière question :

Si, dans une formule, tu as #REF!, elle est définitivement perdue. Plus rien ne différencie tel ou tel #REF! avec telle ou telle cellule...

Bonne soirée.

Jean-Pierre
 

Discussions similaires

Réponses
3
Affichages
227

Statistiques des forums

Discussions
312 505
Messages
2 089 098
Membres
104 031
dernier inscrit
RimeF