Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2011, 15h37   #1
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
Par défaut Rompre les liens macros VBA d'un classeur à l'autre

Bonjour,

J'essaye de faire une macro qui permette de copier un fichier, de le renommer et de l'envoyer via Outlook.

Tout fonctionne bien, excepté le fait que j'ai mis deux macros (mise à jour des liens et copier/coller valeurs) sur une des feuilles et j'aimerais que le destinataire de mon mail puisse utiliser ces macros...

Seulement, ca ne fonctionne pas... J'ai comme message d'erreur chez le destinataire quand j'appuie sur le bouton d'une des deux macros : "Fichier inaccessible"... les liens de la macro avec mon ancien fichier n'ont pas été rompu...

Comment puis-je rompre les liens ?

J'ai essayé de mettre la macro dans le tutoriel VB mais ca ne fonctionne pas non plus...

Merci d'avance,

lbroc84
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 15h39   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Il faut que tu nous donnes ton code, ou au moins une partie, car là, on ne peut pas grand chose pour toi malheureusement...
Peut-être un problème de lien relatif et non absolu ?
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 15h46   #3
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
OK, voici mon code de base de copie d'un fichier vers un autre (sachant que Namesociete est défini plus haut dans la macro)...

Code :
1
2
3
4
5
6
7
8
Sheets(Array("Feuil1", "Feuil2")).Copy
    ChDir "U:\Cheminacces"
    ActiveWorkbook.SaveAs Filename:= _
        "U:\cheminacces\" & NameSociete & ".xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWorkbook.Save
    ActiveWorkbook.Close
Que dois-je ajouter à ce code pour rompre les liens dans le nouveau classeur ?

Merci
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 15h49   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Je pensais plutôt au code lié au bouton sur lequel tu as cliqué. Celui qui pose problème quoi...
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 15h59   #5
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
Je veux bien mettre le code mais d'après moi, ce serait plutôt dans la macro d'origine qu'il faudrait rajouter quelque chose qui puisse rompre les liens car c'est lorsqu'on appuie sur le bouton "Copier /coller valeurs" du nouveau classeur chez le destinataire (qui n'a donc pas le lien avec mon premier fichier) que l'on me dit "Fichier inaccessible"...

Donc en fait, il ne veut pas faire marcher les macros de la feuille du nouveau classeur car il ne reconnait pas le lien avec le fichier d'origine...

Je ne sais pas si je suis claire ?

Voici le code d'une des 2 macros de la feuille copiée dans le nouveau classeur et pour laquelle j'ai le message "Fichier inaccessible" :

Code :
1
2
3
4
5
6
7
8
9
10
11
Sub Bouton3_QuandClic()
 
    Dim i As Integer
    Sheets("Feuil1").Select
    For i = 19 To 624
    Range("F" & i).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Next
End Sub
Merci bcp
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 16h29   #6
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Ok, je vois mieux le problème. Je pense que le plus simple, ce serait d'utiliser le bouton de la boite à outils "contrôles" plutôt que celui d'un "formulaire".

En effet dans le formulaire, tu associes une macro au bouton, ce qui peut effectivement gérer des problèmes lors de la copie. Alors qu'avec un contrôle, le code va gérer l'évènement click et ça ne posera aucun problème lors de la copie.

Au passage, pour ton copier en valeurs, c'est plus simple et plus rapide de faire ça :
Code :
1
2
3
4
5
6
7
Sub Bouton3_QuandClic()
    Dim rg As Range
    Set rg = Sheets("Feuil1").Range("F19:F624")
    rg.Copy
    rg.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2011, 16h53   #7
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
Ta solution m'a l'air GENIALE... et je t'en remercie d'avance...

La seule chose, c'est que je n'ai jamais créé de bouton de contrôle et je en sais pas comment lui attribuer la macro créée...

Quand je crée le bouton, il me met :

=INCORPORER("Forms.CommandButton.1";"")

Dois-je changer quelque chose dans cette formule ?

Où est-ce que je met le nom de ma macro ?

Merci beaucoup
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 17h14   #8
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
En fait quand tu double-cliques sur ton bouton (en mode édition), il te génère automatiquement le code
Code :
1
2
3
Private Sub CommandButton1_Click()
 
End Sub
Il te suffit donc d'écrire ton code ici. Soit tu mets directement ton code soit tu fais
Code :
1
2
3
Private Sub CommandButton1_Click()
  Bouton3_QuandClic
End Sub
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2011, 17h17   #9
Invité régulier
 
Femme
Administrateur de base de données
Inscription : août 2011
Messages : 28
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Distribution

Informations forums :
Inscription : août 2011
Messages : 28
Points : 6
Points : 6
SUPEEEERRRR... ca fonctionne....


Un tout tout grand merci... Ca fait plusieurs jours que je cherche comment résoudre ce problème...

C'est génialissime...

lbroc84
lbroc84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h35.


 
 
 
 
Partenaires

Hébergement Web