Lire les données dans un autre classeur excel
Snoopa-star
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour, Je suis débutante en VBA et le peu que je connaisse c'est grâce au forum !!
Voilà mon soucis je souhaite créer un programme qui lise les données dans un autre classeur excel fermé (qui contient les même données que dans mon classeur actif) et effacer dans le classeur fermé les cellules dont le contenu est semblable aux cellules de mon classeur ouvert.
- Je ne maîtrise pas très bien les boucles (donc je préfère détailler)
- J'ai un message d'erreur " Erreur d'xecution 1004, erreur définie par l'application ou l'objet"
voici mon programme :
Sub choix_table_gnl()
Dim appxl As Excel.Application
Dim fichier As Window
Dim feuille As Worksheet
Set appxl = CreateObject("Excel.application")
Dim read As Variant
With appxl
.Workbooks.Open "C:\Documents and Settings\N0762215\My Documents\SEMINAIRE 2012\Test_classeur\Liste_diner.xls"
.Visible = False
End With
Set fichier = appxl.Windows("Liste_diner.xls")
fichier.Activate
Set feuille = appxl.Sheets("Liste_diner_1")
For i = 2 To 539
feuille.Range("D" & i).Select
For j = 8 To 18
If Activesheet.Range("D" & j) = Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i) Then
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
appxl.Workbooks("Liste_diner.xls").Save
appxl.Workbooks("Liste_diner.xld").Close
End If
Next
Next
End Sub
Voilà mon soucis je souhaite créer un programme qui lise les données dans un autre classeur excel fermé (qui contient les même données que dans mon classeur actif) et effacer dans le classeur fermé les cellules dont le contenu est semblable aux cellules de mon classeur ouvert.
- Je ne maîtrise pas très bien les boucles (donc je préfère détailler)
- J'ai un message d'erreur " Erreur d'xecution 1004, erreur définie par l'application ou l'objet"
voici mon programme :
Sub choix_table_gnl()
Dim appxl As Excel.Application
Dim fichier As Window
Dim feuille As Worksheet
Set appxl = CreateObject("Excel.application")
Dim read As Variant
With appxl
.Workbooks.Open "C:\Documents and Settings\N0762215\My Documents\SEMINAIRE 2012\Test_classeur\Liste_diner.xls"
.Visible = False
End With
Set fichier = appxl.Windows("Liste_diner.xls")
fichier.Activate
Set feuille = appxl.Sheets("Liste_diner_1")
For i = 2 To 539
feuille.Range("D" & i).Select
For j = 8 To 18
If Activesheet.Range("D" & j) = Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i) Then
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
appxl.Workbooks("Liste_diner.xls").Save
appxl.Workbooks("Liste_diner.xld").Close
End If
Next
Next
End Sub
A voir également:
- Lire les données dans un autre classeur excel
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire un fichier epub - Guide
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Imprimer un classeur excel sur mac - Guide
1 réponse
Bonjour,
If Activesheet.Range("D" & j) quel classeur??
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i) Then
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Lorsque que vous voulez utiliser Workbooks("Liste_diner"), il faut toujours mettre devant appxl. puisque vous avez cree :
Set appxl = CreateObject("Excel.application")
Pour les boucles, je n'ai rien compris de ce que vous voulez faire
If Activesheet.Range("D" & j) quel classeur??
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i) Then
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
Lorsque que vous voulez utiliser Workbooks("Liste_diner"), il faut toujours mettre devant appxl. puisque vous avez cree :
Set appxl = CreateObject("Excel.application")
Pour les boucles, je n'ai rien compris de ce que vous voulez faire
"If Activesheet.Range("D" & j) quel classeur?? "
=>> Cela correspond à la feuille active de mon classeur ouvert
J'utilise l'instruction FOR pour faire référence à mes lignes.
L'instruction que je souhaite faire executer est la suivante :
"Si la cellule X de la feuille A mon classeur ouvert est identique à la cellule X de la feuille B mon classeur fermé,
alors il faut suprimer le contenu de la cellule X de la feuille B de mon classeur fermé"
Je ne sais pas comment je pourrai écrire ça plus rapidement donc j'ai utilisé cette méthode qui marche.
Mon soucis est dans la lecture des données dans un classeur fermé.
Donc je compte sur votre connaissance pour m'éclairer la dessus!
Merci
Mon soucis est dans la lecture des données dans un classeur fermé.
Lorsque que vous voulez utiliser Workbooks("Liste_diner"), il faut toujours mettre devant appxl. puisque vous avez cree :
Set appxl = CreateObject("Excel.application")
Donc:
Sub choix_table_gnl()
Dim appxl As Excel.Application
Dim fichier As Window
Dim feuille As Worksheet
Set appxl = CreateObject("Excel.application")
Dim read As Variant
With appxl
.Workbooks.Open "C:\Documents and Settings\N0762215\My Documents\SEMINAIRE 2012\Test_classeur\Liste_diner.xls"
.Visible = False
End With
Set fichier = appxl.Windows("Liste_diner.xls")
fichier.Activate
Set feuille = appxl.Sheets("Liste_diner_1")
For i = 2 To 539
feuille.Range("D" & i).Select
For j = 8 To 18
If Activesheet.Range("D" & j) =appxl. Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i) Then
appxl.Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
appxl.Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
appxl.Workbooks("Liste_diner").Sheets("Liste_diner_1").Range("D" & i).Delete
appxl.Workbooks("Liste_diner.xls").Save
appxl.Workbooks("Liste_diner.xld").Close
End If
Next j
Next i
End Sub
Avec un exemple de vos fichiers, il serait possible de mieux vous aider. C'est vous qui voyez.
Bonne suite