Erreur de compilation
Bonjour à tous,
Je tente d'ajouter un second bouton (tout s'est bien passé pour l'ajout du 1er) à une macro et je me retrouve devant une fenêtre affichant: "erreur de compilation: variable ou procédure attendue."
Voici mon module (qui fonctionne):
Sub Import_templateVAX_vers_Costing()
'
' Import_templateVAX_vers_Costing
'
'
Windows("Template VAX.xlsm").Activate
Range("Tableau1[[Qté de câbles]:[Longueur totale (m)]]").Copy
Windows("Costing SPARES.xlsm").Activate
Range("E51").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Template VAX.xlsm").Activate
Sheets("Template contacts").Select
Range("C2:D12").Copy
Windows("Costing SPARES.xlsm").Activate
Range("A17").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A3").Select
End Sub
Voici la feuille dans laquelle je tente d'ajouter le bouton:
Private Sub CommandButton21_Click()
Validate1
End Sub
Private Sub CommandButton22_Click()
Import_templateVAX_vers_Costing
End Sub
Merci d'avance pour les conseils :)
Bonne journée
Bonjour Anthony,
Tes classeurs "Template VAX.xlsm" et "Costing SPARES.xlsm" sont bien présents ? Et sans bouton ça fonctionne ? Et ta macroValidate1
existe t'elle ?
A mon avis c'est juste une niaiserie
Avec un fichier c'est mieux
Bonjour stepaustras,
Oui sans bouton ça fonctionne, ça doit être une broutille mais qui me donne bien des maux :)
La macro Validate1 fonctionne bien oui
Avec un fichier c'est mieux
Cependant, une modification à tester : assure-toi que tes deux classeurs soient ouverts.
Sub ImportTemplateVAXVersCosting()
Dim wbSource As Workbook
Dim wbTarget As Workbook
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
' Définir le classeur source (Template VAX.xlsm) et le classeur cible (Costing SPARES.xlsm)
On Error Resume Next
Set wbSource = Workbooks("Template VAX.xlsm")
Set wbTarget = Workbooks("Costing SPARES.xlsm")
On Error GoTo 0
' Vérifier si les classeurs ont été ouverts avec succès
If wbSource Is Nothing Then
MsgBox "Le classeur source 'Template VAX.xlsm' n'a pas été trouvé.", vbExclamation
Exit Sub
End If
If wbTarget Is Nothing Then
MsgBox "Le classeur cible 'Costing SPARES.xlsm' n'a pas été trouvé.", vbExclamation
Exit Sub
End If
' Définir la feuille source (Template contacts) et la feuille cible
On Error Resume Next
Set wsSource = wbSource.Sheets("Template contacts")
Set wsTarget = wbTarget.Sheets("VotreFeuilleCible") ' Remplacez "VotreFeuilleCible" par le nom de votre feuille cible
On Error GoTo 0
' Vérifier si les feuilles ont été trouvées
If wsSource Is Nothing Then
MsgBox "La feuille source 'Template contacts' n'a pas été trouvée dans le classeur source.", vbExclamation
Exit Sub
End If
If wsTarget Is Nothing Then
MsgBox "La feuille cible 'VotreFeuilleCible' n'a pas été trouvée dans le classeur cible.", vbExclamation
Exit Sub
End If
' Copier les données depuis le classeur source vers le classeur cible
wbSource.Activate
wsSource.Range("C2:D12").Copy
wbTarget.Activate
wsTarget.Range("A17").PasteSpecial xlPasteValues
' Vous pouvez ajouter d'autres actions ici si nécessaire
' Nettoyer le Presse-papiers
Application.CutCopyMode = False
' Retourner à une cellule spécifique dans le classeur cible (facultatif)
wsTarget.Range("A3").Select
End Sub
Assure toi de remplacer "TaFeuilleCible" par le nom réel de la feuille dans le classeur cible où tu souhaites coller les données depuis le "Template VAX.xlsm". Cette version du code évite l'utilisation excessive de "Activate" et inclut des gestionnaires d'erreurs pour gérer les cas où les classeurs ou les feuilles ne sont pas trouvés.
Super merci beaucoup !
Seulement ce code fonctionne aussi mais pas en passant par un bouton :(
J'ai solutionné en mettant un bouton de contrôle de formulaire à la place :)
Merci encore à toi pour ton aide ! Je passe en résolu.
Excellente soirée