Erreur Code Macro Excel

Résolu/Fermé
Martin - 12 avril 2012 à 17:28
 Martin - 12 avril 2012 à 19:15
Bonjour,

Est-ce que quelqu'un peut m'aider avec ce code simple ? Je ne vois pas l'erreur :(


Private Sub CommandButton1_Click()

Dim sFicRegistre    As String
Dim sPathRegistre   As String
Dim WbkR            As Workbook
Dim WbkC            As Workbook
Dim ShtR            As Worksheet
Dim ShtC            As Worksheet
Dim li              As Long

  sFicRegistre = "Registre.xlsm"
  sPathRegistre = "P:\Bon de Commande\"
  Set WbkC = ThisWorkbook
  Set ShtC = ThisWorkbook.Sheets("Feuil1")
  ' Ouvrir le classeur en OLE
  Set WbkR = GetObject(sPathRegistre & "\" & sFicRegistre)
  Set ShtR = WbkR.Sheets("Registre")
  
  
  
  WbkC.Sheets("Feuil1").Range("G2:G").Copy _
                                      WbkR.Sheets("Registre").Range("G2:G")
                                      
  WbkC.Sheets("Feuil1").Range("H2:H").Copy _
                                      WbkR.Sheets("Registre").Range("H2:H")
                                      
  WbkC.Sheets("Feuil1").Range("I2:I").Copy _
                                      WbkR.Sheets("Registre").Range("I2:I")
                                      
  WbkC.Sheets("Feuil1").Range("J2:J").Copy _
                                      WbkR.Sheets("Registre").Range("J2:J")
                                      
  WbkC.Sheets("Feuil1").Range("K2:K").Copy _
                                      WbkR.Sheets("Registre").Range("K2:K")
                                      
  WbkC.Sheets("Feuil1").Range("L2:L").Copy _
                                      WbkR.Sheets("Registre").Range("L2:L")
  
  
  WbkR.Close savechanges:=True

End Sub



j'obtiens une erreur 1004
<config>Windows XP / Internet Explorer 8.0</config>
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
12 avril 2012 à 18:19
Bonjour

C'aurait été sympa de nous dire sur quelle ligne tu as cette erreur!!

mais

Range("G2:G") est une erreur
il faudrait par exemple
Range("G2:G100")

et peut-^tre simplifier avec
Shtc.range("G2:L100").copy Sthr.range("G2:L100")
0
Oui j'avais meme pas pensé, Merci ! :)

Parcontre lorsque j'essaie de réouvrir le fichier (registre), Excel s'ouvre, mais la fenêtre ne s'affiche pas ?!?

Tu comprends pourquoi ?

Merci de m'aider
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
12 avril 2012 à 18:33
bin non tu ne l'as pas demandé avec un activate
mais en as tu besoin pour ta macro? non
si j'ai pigé ;o/
0
C'est assez problématique par contre...
Devrais-je mettre un activate, si oui comment faire ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
12 avril 2012 à 18:45
qu'appelles tu
mais la fenêtre ne s'affiche pas ?!?

la fen^tre c'est la feuille Sthr ?
0
Oui !
Excel s'ouvre sans afficher les feuilles
Peut-etre qu'une boucle For qui prend seulement les cellules non vides du range pour les copier serait moins lourd puisque j'ai mit le range à copier > G2 : L50000
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
12 avril 2012 à 19:07
Tu recherches la dernière ligne utilisée

derlig=cells.find(what:="*",searchdirection:=xlprevious).row
et tu as
"G2:L" & derlig

mais je répete (si j'ai pigé), tu n'as pas besoin de montrer la feuille (au contraire ca ralentit) pour copier ton tableau
0