VbExcel : importer dernier mot adresse ?
Résolu/Fermé
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
-
4 juin 2009 à 09:10
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 - 4 juin 2009 à 19:13
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 - 4 juin 2009 à 19:13
13 réponses
NicoDisso
Messages postés
230
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
22 août 2009
32
4 juin 2009 à 11:27
4 juin 2009 à 11:27
ok, pas de probleme
donc tu sais que le premier "\" ou "/" dans ton nom de fichier en partant de la fin te donneras la nom de ton fichier.
Mais on doit aussi pouvoir l'avoir en testant le nom du classeur actif, non ?
ActiveWorkbook.Name
qu'en penses tu ?
donc tu sais que le premier "\" ou "/" dans ton nom de fichier en partant de la fin te donneras la nom de ton fichier.
Mais on doit aussi pouvoir l'avoir en testant le nom du classeur actif, non ?
ActiveWorkbook.Name
qu'en penses tu ?
NicoDisso
Messages postés
230
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
22 août 2009
32
4 juin 2009 à 09:13
4 juin 2009 à 09:13
Salut le stagiaire
C'est toujours des noms de fichiers que tu récupères ? et avec un controle CommonDialog ou pas ?
C'est toujours des noms de fichiers que tu récupères ? et avec un controle CommonDialog ou pas ?
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
4 juin 2009 à 11:20
4 juin 2009 à 11:20
Encore moi ^^
Je récupère toujours des noms de fichier en effet avec l'extension '.xls'.
Mais je n'utilise pas de contrôle commondialog..
Voici un extrait du code :
Private Sub Workbook_Open()
Dim NomVar, NomFichier As String
vari = Application.GetOpenFilename
Workbooks.Open (vari)
MsgBox vari
Le msgbox m'affiche l'adresse complète, mais en fait je voudrais n'avoir que le nom du fichier stocké dans NomFichier pour l'utiliser comme suit :
workbooks(nomfichier).sheets("feuil2").cells(1,2)
Ce qui me permet par conséquent d'activer une macro sur le dernier fichier ouvert, peu importe le nom.
(désolé internet défaillant ce matin je n'ai pas pu me reconnecter avant..)
merci
Je récupère toujours des noms de fichier en effet avec l'extension '.xls'.
Mais je n'utilise pas de contrôle commondialog..
Voici un extrait du code :
Private Sub Workbook_Open()
Dim NomVar, NomFichier As String
vari = Application.GetOpenFilename
Workbooks.Open (vari)
MsgBox vari
Le msgbox m'affiche l'adresse complète, mais en fait je voudrais n'avoir que le nom du fichier stocké dans NomFichier pour l'utiliser comme suit :
workbooks(nomfichier).sheets("feuil2").cells(1,2)
Ce qui me permet par conséquent d'activer une macro sur le dernier fichier ouvert, peu importe le nom.
(désolé internet défaillant ce matin je n'ai pas pu me reconnecter avant..)
merci
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
4 juin 2009 à 11:22
4 juin 2009 à 11:22
erf vari = NomVar .... j'ai oublié d le changer après la déclaration .. désolé
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
4 juin 2009 à 11:37
4 juin 2009 à 11:37
j'en pense que je doit vraiment me prendre trop la tête lol en effet c'est tout bête...j'étais parti sur un comptage du nombre de caractères en partant du début..enfin génial le activeworkbook c'est vrai que sa fonctionne très bien...
merci :)
et pendant que j'y suis je cherche également une deuxième chose que je ne trouve pas j'espère ne pas me ridiculiser 2 fois dans la même demi journée, lol
Ma macro effectue en faite un tri sur le classeur mais le problème est que toute la recherche est visible, c'est à dire que l'on voit la recherche s'effectuer ligne par ligne..
Y'a t'il un moyen de masquer ce traitement ?
Si je ne suis pas clair je suis disposé a m'expliquer.
merci
merci :)
et pendant que j'y suis je cherche également une deuxième chose que je ne trouve pas j'espère ne pas me ridiculiser 2 fois dans la même demi journée, lol
Ma macro effectue en faite un tri sur le classeur mais le problème est que toute la recherche est visible, c'est à dire que l'on voit la recherche s'effectuer ligne par ligne..
Y'a t'il un moyen de masquer ce traitement ?
Si je ne suis pas clair je suis disposé a m'expliquer.
merci
NicoDisso
Messages postés
230
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
22 août 2009
32
4 juin 2009 à 11:40
4 juin 2009 à 11:40
soit tu reduit ta feuille lors du traitement sois tu fais
Application.ScreenUpdating=False
au debut et
Application.ScreenUpdating=true
à la fin,
mais attention tu a interet a etre sur de ton code car si tu bug, et que ne lis pas
"Application.ScreenUpdating=true" excel sera planté pour l'utilisateur, il ne pourra plus rien faire dedans tant dans le code tu fasses "Application.ScreenUpdating=true" essayes pour voir le résultat...
Application.ScreenUpdating=False
au debut et
Application.ScreenUpdating=true
à la fin,
mais attention tu a interet a etre sur de ton code car si tu bug, et que ne lis pas
"Application.ScreenUpdating=true" excel sera planté pour l'utilisateur, il ne pourra plus rien faire dedans tant dans le code tu fasses "Application.ScreenUpdating=true" essayes pour voir le résultat...
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
4 juin 2009 à 11:46
4 juin 2009 à 11:46
ctrl + pause n'arèterais pas le 'bug'?
sinon j'essai de suite
sinon j'essai de suite
NicoDisso
Messages postés
230
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
22 août 2009
32
4 juin 2009 à 12:03
4 juin 2009 à 12:03
Ctrl+pause arrete ta macro mais n'inetragis pas avec excel.
Mais du coup sur mon poste que je le fasse ou pas excel se rafraichit toujours...
pourtant il me semblait bien que ca servait à ca.
Cette propriété a la valeur True si la mise à jour de l'écran est activée. Type de données Boolean en lecture-écriture.
Remarque
Désactivez la mise à jour de l'écran pour accélérer l'exécution du code de votre macro. Vous ne pourrez suivre le déroulement de la macro mais en revanche celle-ci sera exécutée plus rapidement.
N'oubliez pas d'affecter de nouveau la valeur True à la propriété ScreenUpdating à la fin de la macro.
Le plus simple est de reduire ta fenetre au debut de la macro et de l'agrandir à la fin...
Mais du coup sur mon poste que je le fasse ou pas excel se rafraichit toujours...
pourtant il me semblait bien que ca servait à ca.
Cette propriété a la valeur True si la mise à jour de l'écran est activée. Type de données Boolean en lecture-écriture.
Remarque
Désactivez la mise à jour de l'écran pour accélérer l'exécution du code de votre macro. Vous ne pourrez suivre le déroulement de la macro mais en revanche celle-ci sera exécutée plus rapidement.
N'oubliez pas d'affecter de nouveau la valeur True à la propriété ScreenUpdating à la fin de la macro.
Le plus simple est de reduire ta fenetre au debut de la macro et de l'agrandir à la fin...
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
4 juin 2009 à 12:21
4 juin 2009 à 12:21
en effet cela ne marche pas non plus c'est toujours visible.
Cependant, sur l'ancienne question, j'ai un petit souci il ne m'accepte pas partout le 'activeworkbook.name'
sur la ligne de départ (qui fonctionne) :
If workbooks("cata.xls").Sheets("feuil1").Cells(numligne, 2) <> 3440
And workbooks("cata.xls").sheets("feuil1").Cells(numligne, 2), 1, 2) <> 46 then
j'écris avec la solution que tu ma donnée :
if workbooks(activeworkbook.name).Sheets("feuil1").Cells(numligne, 2) <> 3440
And workbooks(activeworkbook.name).sheets("feuil1").Cells(numligne, 2), 1, 2) <> 46 then
ou
if ActiveWorkbook.Sheets("feuil1").Cells(numligne, 2) <> 3440
And ActiveWorkbook.Sheets("feuil1").Cells(numligne, 2), 1, 2) <> 46 then
aucune de ces solutions ne fonctionnent ....
pourtant le "msgbox activeworkbook.name" me renvoi "cata.xls" en ouvrant le fichier cata.xls"
y'a t'il quelque chose qui te dérangerais dans mon code?
merci
Cependant, sur l'ancienne question, j'ai un petit souci il ne m'accepte pas partout le 'activeworkbook.name'
sur la ligne de départ (qui fonctionne) :
If workbooks("cata.xls").Sheets("feuil1").Cells(numligne, 2) <> 3440
And workbooks("cata.xls").sheets("feuil1").Cells(numligne, 2), 1, 2) <> 46 then
j'écris avec la solution que tu ma donnée :
if workbooks(activeworkbook.name).Sheets("feuil1").Cells(numligne, 2) <> 3440
And workbooks(activeworkbook.name).sheets("feuil1").Cells(numligne, 2), 1, 2) <> 46 then
ou
if ActiveWorkbook.Sheets("feuil1").Cells(numligne, 2) <> 3440
And ActiveWorkbook.Sheets("feuil1").Cells(numligne, 2), 1, 2) <> 46 then
aucune de ces solutions ne fonctionnent ....
pourtant le "msgbox activeworkbook.name" me renvoi "cata.xls" en ouvrant le fichier cata.xls"
y'a t'il quelque chose qui te dérangerais dans mon code?
merci
NicoDisso
Messages postés
230
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
22 août 2009
32
4 juin 2009 à 12:36
4 juin 2009 à 12:36
je ne comprends pas trop ce qui est en gras
workbooks("cata.xls").sheets("feuil1").Cells(numligne, 2), 1, 2)
workbooks("cata.xls").sheets("feuil1").Cells(numligne, 2), 1, 2)
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
4 juin 2009 à 13:38
4 juin 2009 à 13:38
je vais me tuer désolé mauvaise recopie...
workbooks("cata.xls").sheets("feuil1").mid(Cells(numligne, 2), 1, 2)
voila sa sera plus compéhensible
et le pire c'est que j'ai vérifié avant d'envoyer..
workbooks("cata.xls").sheets("feuil1").mid(Cells(numligne, 2), 1, 2)
voila sa sera plus compéhensible
et le pire c'est que j'ai vérifié avant d'envoyer..
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
4 juin 2009 à 14:39
4 juin 2009 à 14:39
c'est bon j'ai trouvé !! :)
en faite il fallait que je je déclare 2 variables :
dim var1, var2 as string
var1 = Application.GetOpenFilename
Workbooks.Open (var1)
var2 = ActiveWorkbook.Name
et ensuite dans le programme :
workbooks(var2).sheets("feuil1").cell(1,1) <> 3440
En effet l'erreur été qu'il ne n'accepté pas de faire directement :
workbooks(activeworkbook.name).sheets("feuil1").cell(1,1) <> 3440
(Au faite, pour les feuilles masquées au démarrage d'excel c'est bon j'ai compris comment il fallait procéder mais j'ai oublié de le signaler sur le forum. J'en apprend des choses ces temps-ci !!)
encore merci ^^
en faite il fallait que je je déclare 2 variables :
dim var1, var2 as string
var1 = Application.GetOpenFilename
Workbooks.Open (var1)
var2 = ActiveWorkbook.Name
et ensuite dans le programme :
workbooks(var2).sheets("feuil1").cell(1,1) <> 3440
En effet l'erreur été qu'il ne n'accepté pas de faire directement :
workbooks(activeworkbook.name).sheets("feuil1").cell(1,1) <> 3440
(Au faite, pour les feuilles masquées au démarrage d'excel c'est bon j'ai compris comment il fallait procéder mais j'ai oublié de le signaler sur le forum. J'en apprend des choses ces temps-ci !!)
encore merci ^^
NicoDisso
Messages postés
230
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
22 août 2009
32
4 juin 2009 à 19:13
4 juin 2009 à 19:13
De rien, @ +