Pb lecture cellules dans un fichier.
Résolu
jo456
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
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
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
A voir également:
- Pb lecture cellules dans un fichier.
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
7 réponses
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..
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
A+
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+
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?
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?
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 !!
Pour avoir la fenêtre Sauver sous... il faut que ce soit un nouveau classeur.
Sinon, je comprend toujours pas !!
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
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
C'est une référence à ajouter dans VB6
>> Projet >> Références >> et la choisir Microsoft Excel et valider.
A+
>> Projet >> Références >> et la choisir Microsoft Excel et valider.
A+
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++
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++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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
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
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???