XL 2010 Ecrire dans un autre fichier ouvert - panne macro

  • Initiateur de la discussion Initiateur de la discussion jeanba
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeanba

XLDnaute Occasionnel
Bonjour le Forum,

J'ouvre ce fil pour un bout de code qui marche un coup sur 2...
besoin de vos lumières.

Explications:
J'ai un classeur source (WbData) depuis lequel je copie certaines données vers un classeur destinataire (WbExp).

VB:
Option Explicit

Dim WbData As Workbook         ' WbData = Classeur de données source
Dim WbExp As Workbook          ' WbExp = Classeur destinataire
Dim ShData As Worksheet           ' ShData = Feuille du classeur de données source
Dim ShExpP As Worksheet           ' ShExpP = Feuille du classeur destinataire nommé "PARAMETRES"
Dim ShExpD As Worksheet          ' ShExpD = Feuille du classeur destinataire nommé "DONNEES"
Dim Mois, i&
Dim mmois, Nom, réponse

Private Sub UserForm_Initialize()
Set WbData = ThisWorkbook
End Sub

Private Sub CommandButton2_Click()

' 1. Ouvre le fichier destinataire
'     ------------------------------------    
Application.ScreenUpdating = False

Unload Me

' 2. Sélectionne le mois à clôturer et générer le fichier comptable

Mois = (Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", _
            "Décembre"))

For i = 1 To 12
    If Me.Controls("OptionButton" & i).Value = True Then
        If WbData.Sheets(Mois(i - 1)).Range("L4") = "" Then
            MsgBox ("Le journal du mois de " & WbData.Sheets(Mois(i - 1)).Range("B7") & " n'est pas clôturé! " & _
            Chr(10) & "Aucun transfert ne peut avoir lieu tant que le journal concerné n'est pas clôturé!")
            GoTo FIN

Le code renvoie l'erreur suivante :

upload_2017-6-21_13-21-41.png

Sur cette ligne:
upload_2017-6-21_13-22-22.png


Besoin de votre aide.

Merci

Jeanba
 
Bonjour Jeanba, bonjour le forum,

Je me demande si ton
Unload Me suivi quelque lignes plus loin d'un Me.Controls... ne serait pas le problème. Mais, dans ce cas, ça devrait être la ligne au-dessus de celle que tu as signalée qui se colore de jaune...
 
Bonsoir Robert,

En suivant ton conseil, j'ai modifié mon code comme suit:
VB:
Mois = (Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", _
            "Décembre"))
For i = 1 To 12
    If Me.Controls("OptionButton" & i).Value = True Then
        Unload Me
       
        With Sheets(Mois(i - 1))
            .Select
            If WbData.Sheets(Mois(i - 1)).Range("L4") = "" Then

Et là, il passe. Mais, quelques temps après, lorsque je lance la même procédure pour tester d'autres instructions ajoutées, il donne l'erreur suivante:

"Incompatibilité de type"
 
Bonjour Robert,

Non, j'ai rien supprimé.
Avant de joindre un fichier, je te propose de comprendre le but du code, peut-être existe t-il une autre manière de l'écrire:

Je copie des données d'une feuille du classeur actif vers une feuille de données (WbExpD) d'un autre classeur WbExp. Jusque là ça va.

La macro choisit la feuille source sur 12 (janvier à déc) en fonction de 12 OptionButton sur l'userform. Une fois cette feuille trouver, 2 choses:
- Unload Me
- activer la feuille sélectionner

Peut ensuite commencer la copie.
Mais, avant d'effectuer la copie, je dois tester que la valeur de la cellule L4 n'est pas nulle. Si c'est la cas, interruption de la procédure, sinon:
- copie de la plage souhaitée
- Paste vers la plage désignée dans le fichier destinataire
- enregistrement du classeur destinataire
- fermeture du classeur destinataire
- fin de la procédure
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
580
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
817
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Retour