Manipuler un second fichier Excel

snheed

XLDnaute Nouveau
[résolu]Manipuler un second fichier Excel

Bonjour à tous,

Je pense que la solution à mon problème est vraiment toute simple mais pourtant, je n'arrive pas à la trouver.

Dans un fichier Excel, j'ai un bouton qui exécute une macro. Cette macro ouvre un nouveau document Excel composé d'un tableau. J’aimerai que la macro m’affiche (pour l’instant) le numéro de ligne ou se situe le curseur. Or, c’est le numéro de ligne de la première page Excel qui s’affiche.

Voici mon code :

Code:
Sub ouvrir()
    'Déclaration des variables
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
    
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("Tableau.xls")
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1)
    appExcel.Visible = True
    
    wsExcel.Range("B8").End(xlDown).Offset(1, 0).Range("A1").Select
    MsgBox (ActiveCell.Row)
End Sub

J’ai essayé wbExcel.Activate, Workbooks("Tableau.xls").Activate sans résultat…

Pouvez-vous me dire quelle commande je doit utiliser pour spécifier que je manipule le fichier Tableau.xls ?

Merci d’avance pour toutes vos réponses.

Snheed
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Manipuler un second fichier Excel

bonjour snsheed

Atester

Code:
Workbooks("Tableau.xls").Sheets(1).Range("B8").End(xlDown).Offset(1, 0).Range("A1").Select
    MsgBox (ActiveCell.Row)

note:
il serait même preferable de mettre

Code:
Workbooks("Tableau.xls").Sheets[COLOR=red]("nomdelafeuille").[/COLOR]Range("B8").End(xlDown).Offset(1, 0).Range("A1").Select
    MsgBox (ActiveCell.Row)
 

snheed

XLDnaute Nouveau
Re : Manipuler un second fichier Excel

Merci pour ton aide pierrejean,

Malgré tes conseils j'ai toujours la même erreur. Il bloque sur la ligne "Workbooks("Tableau.xls").Activate"

Je joins à ma réponse une copie basic de mes fichiers. Ce sera peut être plus simple de voir le problème.

Merci encore.

Snheed
 

Pièces jointes

  • Fichiers.zip
    14.1 KB · Affichages: 29
  • Fichiers.zip
    14.1 KB · Affichages: 34
  • Fichiers.zip
    14.1 KB · Affichages: 31

Luki

XLDnaute Accro
Re : Manipuler un second fichier Excel

Bonjour à tous :

Workbooks("D:\Tableau.xls").Activate ;)

ton fichier s'appelle "Tableau.xls", pas "D:\Tableau.xls"

Corrige dans ton code et ça devrait fonctionner

A+

Edit :

Tu devrait pouvoir simplifier l'ouverture de ton fichier comme ceci, sans passer par le createobject :
Code:
     Workbooks.Open Filename:="D:\Tableau.xls"
'puis éventuellement si ton fichier n'est pas actif :
    Workbooks("Tableau.xls").Activate
 
Dernière édition:

Luki

XLDnaute Accro
Re : Manipuler un second fichier Excel

Re

C'est comme je pensais, le fait d'ouvrir le classeur le rend actif par défaut, donc pas besoin de l'activer. Ton code épuré:

Code:
Sub ouvrir()
     
    'Ouverture d'un fichier Excel
  Workbooks.Open Filename:="D:\Tableau.xls"
  
    Sheets(1).Range("B8").End(xlDown).Offset(1, 0).Range("A1").Select
    MsgBox (ActiveCell.Row)
        
End Sub
 
Dernière édition:

snheed

XLDnaute Nouveau
Re : Manipuler un second fichier Excel

Merci Luki,

J'avais déjà remarqué ce détail lors de mes tests (la preuve le fichier joins de mon précédent message tiens compte déjà de cette modification) mais malgré cela, j'ai toujours le même message d'erreur.

Merci quand même pour ton aide.

Snheed
 

pierrejean

XLDnaute Barbatruc
Re : Manipuler un second fichier Excel

re

Salut Luki

@ snheed

Au cas ou tu tiendrais a avoir 2 instances d'Excel :

appExcel.Workbooks("Tableau.xls").Activate
appExcel.Sheets(1).Range("B8").End(xlDown).Offset(1, 0).Range("A1").Select

(mais je crois que ce n'est pas le cas)
 

Discussions similaires

Réponses
14
Affichages
696

Statistiques des forums

Discussions
312 447
Messages
2 088 496
Membres
103 871
dernier inscrit
julienleburton