ERREUR dans VBA

Bonsoir
Je me suis attaqué à une VBA et j’ai un message d’erreur
Peux-tu m’aider?
Merci

Bonjour,

Vous utiliserez systématiquement l’instruction Set pour affecter un objet à une variable. Voici quelques exemples :

Dim plage As Range Set plage = Range(“A2:A9”) 'plage représente la plage A2:A9 Dim wb As Workbook Set wb = ActiveWorkbook 'wb représente le classeur actif Dim wb2 As Workbook Set wb2 = Workbooks.Add 'Ajout d’un classeur

Lorsque vous avez défini un objet, pensez à le libérer à la fin de la procédure en lui affectant la valeur Nothing :

Set feuille = Nothing Set plage = Nothing Set wb = Nothing Set wb2 = Nothing

EXEMPLE MACRO:

Sub bb()
Dim MonFichier As Workbook

'###
'--- Ouvre le classeur externe ---
Set MonFichier = GetObject("c:\test.xls")   ' Chemin à adapter
MonFichier.Windows(1).Visible = True
'--- Copie la plage A1:H50 de la feuille 1 du classeur externe ---
MonFichier.Sheets(1).Range("a1:h50").Copy

'###
'--- Le classeur appelant qui contient la macro ---
With ThisWorkbook
  .Activate
'--- Colle dans la feuille 2 cellule de destination B2 ---
  .Sheets(2).Select
  .Sheets(2).[b2].Select
  ActiveSheet.Paste
End With
'--- Vide le presse papiers ---
Application.CutCopyMode = False

'###
'--- Ferme le classeur externe et vide la mémoire ---
MonFichier.Close False
Set MonFichier = Nothing
End Sub

Merci MIMIMATHY
Je vais travailler tout ça et avancer sur le sujet.
Je ne sais pas ce qu’il faut faire sur la page pour remercier
Merci

Bonjour MIMIMATHY
Je voudrais envoyer une valeur dans une autre feuille et d’un autre classeur

j’ai essayé mais ça ne marche pas pourtant cette formule a déjà fonctionné, mais c’était dans le même classeur (voir les modèles en bas)
A bientôt

Re,

Teste comme ceci

Sub ARCHIVATION()
  Dim Journal As Workbook, ligne%
  Set Journal = GetObject("F:\Documents..........................")
  'Journal.Windows(1).Visible = True 'Pour rendre le classeur visible
  ligne = Journal.Sheets("Liste").Range("A2").End(xlDown).Row + 1
  Journal.Sheets("Liste").Range("A" & ligne).Value = ActiveWorkbook.Sheets("DEVIS").Range("L13").Value
  Journal.Close True 'Ferme le classeur en l'enregistrant
  Set Journal = Nothing 'Libère la mémoire
End Sub

Re
J’ai toujours une erreur
je t’envoie le fichier “DEVIS” et “JOURNAL” pour que tu vois en réel.
Aussi le msg d’erreur


02.DK DEVIS-CHIFFRAGE 2020.xlsm (512,1 Ko) JOURNAL DEVIS.xlsx (9,7 Ko)

Re

Teste

Sub ARCHIVATION()
 
 Dim Journal As Workbook, ligne%
 Application.ScreenUpdating = False
     Set Journal = GetObject("F:\Documents\01.DK.PLAC'ART_QUOTIDIEN\02.DEVIS_FACTURES\2020 DEVIS\JOURNAL\JOURNAL DEVIS.xlsx")
     Journal.Windows(1).Visible = True 'Pour rendre le classeur visible
     '(Détermine la ligne à renseigner)
     ligne = Journal.Sheets("Liste").Range("A2").End(xlDown).Row + 1
     ThisWorkbook.Sheets("DEVIS").Activate
     Journal.Sheets("Liste").Range("A" & ligne).Value = Sheets("DEVIS").Range("L13").Value
     Journal.Close True 'Ferme le classeur en l'enregistrant
     Set Journal = Nothing 'Libère la mémoire
End Sub

Hello MIMIMATHY

Ca fonctionne, mais j’ai du enlever la dernière formule “Set Journal = Nothing”
Car ça n’a pas ajouter la ligne dans le JOURNAL mais remplacé la dernière
C’était pour te donner l’info, mais ça marche
Un grand merci
Ps je ne sais pas comment remercier sur le site!

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.