Pb lecture cellules dans un fichier.

Résolu/Fermé
Signaler
-
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
-
Bonjour,

Je n'arrive pas sous VB6 malgres toutes mes recherche à lire des cellules dans un fichier que j'ai ouvert...
pour ouvrir le fichier j'ai utilisé : Open SelectedFile For Input As #2

SelectedFile=chemin d'acces du fichier...(il s'ouvre bien)

je doit lire la cellule D2 (pour commencer) d'un fichier ouvert sous excel.
j'ai essayé :

-Activesheet.Range("D2").Value
-CELLS(2,4).Value

Mais quand j'utilise ceci un méssage s'ouvre :

-erreur d'execution 424
un objet est requis

je ne suis pas un pro en VB un peu de clémence svp
merci

7 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197
Bonjour,
Voir ce topic pour travailler excel à partir de VB6
A+
1
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197
Réponse à ta question 8
Val est un mot réservé, tu ne peu l'employer comme variable, met Valeur si tu veux ou autre chose.

Réponse à ta question 9
Dans ta boucle du met..
    DoEvents

et tu pourras arriver dans l'événement clic du bouton où tu doit mettre
Mais si j'ai compris ta boucle tu veux trouver la 1ère cellule vide... Si oui pas besoin de boucle
'Première cellule vide pour la colonne D
Dim DerLig as long
    DerLig = Range("D65536").End(xlUp).Row + 1

A+
1
si je veut faire de meme apres par exemple pour la colonne A me suiffit t'il de remplacé D653... par A65....?
0
j'ai reussi ce que je souhaité faire...mais un autre probleme ce pose

Private Sub Command1_Click()
Dim DerLig As Long
List1.AddItem (Newadress) 'ajout la nvl adress mail dans la liste
'premiere cellule vide pour la colonne A
DerLig = Range("A65536").End(xlUp).Row + 1
Cells(DerLig, 1) = Newadress
End Sub

Newadress est un textbox dans lequel on rentre une adresse mail...cette adresse est copiée dans la derniere cellule de la colonne A...mais en quittant mon prog il me demande si je veut enregistrer les modification apporté au fichier "adressmail.xls" donc quand je lui dit oui il m'ouvre la fenetre enregistrer sous...je souhaite alors remplacer l'ancien fichier "adressmail.xls" par le nouveau (donc écraser l'ancien) mais quand je clique sur enregistrer il ne ce passe rien comme si il n'accepter pas que j'enregistre...je suppose sans certitude qu'il ne veut pas ecraser l'ancien fichier car il est encore ouvert...ai je tors?
0
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197 > jo456
Comprend pas... quand ont clic sur Oui, il n'y a pas de fenêtre <Enrégistrer sous..> ?
0
>
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020

si il y a une fenetre enregistrer sous qui s'ouvre...mais il ne veut pas écraser le fichier "adressemail" deja existant
0
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197 > jo456
Attend... Si j'extrapole fortement... tu à un classeur "adressemail"... Tu ouvre un nouveau classeur... et tu veux le sauver sous le nom adressemail ? Si c'est ça, faut d'abord fermer adressemail.
Pour avoir la fenêtre Sauver sous... il faut que ce soit un nouveau classeur.
Sinon, je comprend toujours pas !!
0
petite précision : le fichier que je doit ouvrir est un fichier.DBF en gros c'est une base de données...sachant que j'arrive a ouvrir ce fichier avec excel et que excel ne me change pas la mise en forme j'ai donc utilisé la meme manip que pour un fichier excel normal...est ce que mon probleme viens de la?

y a t'il une manip pour ouvrir un fichier et qu'il apparaisse a l'ecran car apparament le fichier s'ouvre en arriere plan.

merci d'avance
0
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197
C'est une référence à ajouter dans VB6
>> Projet >> Références >> et la choisir Microsoft Excel et valider.
A+
0
désolé de te poser toutes ces question mais avec ce que tu ma montrer qu'est il sensé ce passer??

car moi je reçoi tjr un méssage d'erreur '424'

je pence que recopier simplement tes ligne de code ne suffit pas ^^ car malgrés que j'ai ajouter tout ça...le fichier excel ne s'ouvre pas...désolé mais j'ai vraiment baucoup de mal avec VB je suis plus habitué au c et c++
0
> jo456
heu petite question...quelles sont les lignes de code à utiliser pour la suite (lecture d'une cellule) car mon: CELLS(2,7).value me donne le message d'erreur....ce que tu m'a donné avant a l'air de marcher donc je te remercie pour cela.
0
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197
En principe, si le chemin du classeur est valide il est ouvert et visible, est-ce le cas ?
Si oui, il te faut sélectionner la feuille..
Si tu a garder les même variables que dans l'exemple...
Feuille.Range("D2").select serra la cellule active
ou..
MaVariable = Feuille.Range("D2")
ou..
Ligne =2 : Colonne = 4
MaVariable = Feuille.cells(Ligne, Colonne) 'Comme ça tu peu faire avec des boucles for/Next
Ou encore autre exemple
MaVariable = Book.Sheets(1).cells(Ligne, Colonne)
ou..
MaVariable = Book.Sheets("LeNomDeLaFeuille").cells(Ligne, Colonne)
Tout ces exemples pour te montrer les possibilités pour travailler. Si tu connais le VBA tu peu tout faire en remplacant Application par EX et le classeur par Book

NB: S'il n'est pas nécessaire de voir le classeur tu peu très bien y travailler sans le mettre en "Visible"

Tu dit.
0
non le fichier excel n'est pas visible a l'ecran mais j'ai reussi a m'en sortir un peu...j'ai mi un test pour verifier si la cellule etait bien lu correctement et sa marche donc c ok...jte remercie pour tout en cherchant un peu dans la direction de t réponce je suis parvenu a avancer
0
> jo456
excuze moi j'ai encore un probleme...aprés avoir lu la cellule je doit verifié avec un if si la case est vide ou non...puis passé a la cellule suivante...et recommencer....pour ce faire j'ai utilisé :

Do While (aret <> 1)
val = Worksheets(1).Cells(I, 4).Value

'probleme avec le if
If (val <> "") Then
I = I + 1

Else: j = 1
End If

Loop

il me met un message d'erreur sur le if a tu une idée??

merci
0
j'ai encore un problem ...j'ai fait un do while ..et je doit en sortir seulement quand j'appuie sur le boutton "aret" ...mais une fois la boucle lancée je ne peut plus rien faire...j'ai essayer de metre un sleep pour avoir le temps d'appuyer sur "aret" mais le prog et tout le temps occuper...comment faire???
0
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 197
Mais oui...comme tu testais la colonne 4 j'ai donc mis D.

Tu peu aussi le faire avec Cells...
Dim DerLig as long, Colonne as integer
    Colonne = 1 'pour la colonne A
    DerLig = Cells(D65536,Colonne).End(xlUp).Row + 1
0