VBA - Windows ("x.csv").Activate / "x" var - aller sur le SEUL.csv ouvert

zebanx

XLDnaute Accro
Bonjour,

Qq pourrait-il s'il vous plait m'aider sur un démarrage de code

Objectif : Recopier les données d'un fichier .CSV dont le nom temporaire après ouverture d'un lien Hypertexte n'est jamais identique (ie "table_N°x.csv")

Problème : Le navigateur reste ouvert, il faut que la macro se positionne sur le fichier csv ouvert (c'est le seul à être ouvert) pour continuer son code ("Columns("A:A").Select...)
Grace à une super aide ce matin, on arrive à fermer le navigateur mais il ferme aussi la table.CSV temporaire.

Le code et mes quelques médiocres pas de recherche

Range("M2").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
' le fichier csv qui prend un nom "table_x" avec x aléatoire s'ouvre bien mais c'est la page du navigateur qui s'affiche
SendKeys "%{TAB}" 'à l'écran, en faisant ALT + TAB on arrive au fichier "table_x" mais dans son exécution par la macro, cela ne fonctionne pas
With Workbook '= "table_x" : comment faire sinon pour lui dire de chercher le chemin du seul fichier csv ouvert Windows("table-x.csv").Activate sachant que je ne peux pas mettre de numéro à x ?

'A partir de là si on part bien du fichier csv, il ne devrait pas y avoir de problème
Columns("A:A").Select
Selection.Copy
ThisWorkbook.Activate
Range("D1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("D1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=True, Space:=False, Other:=False, FieldInfo:= _
Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7 _
, 1)), TrailingMinusNumbers:=True
Application.DisplayAlerts = False
End With
' fermeture de tous les autres workbooks y compris le CSV
For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close SaveChanges:=False
End If
Next w
Range("H2").Select
End Sub

Vous en remerciant, cdlt
thierry
 

zebanx

XLDnaute Accro
Re : VBA - Windows ("x.csv").Activate / "x" var - aller sur le SEUL.csv ouvert

Rebonjour, j'ai essayé d'avancer sur la RECHERCHE d'activation de WINDOWS ("table-x.csv"). Activate et espère que vous pourrez m'aider

1 Par l'utilisation de "For" - fonctionne en pas à pas détaillé - mais problème de code en lancementDim killString$

Dim i As Integer
i = 1
Range("M2").Select

Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
For i = 1 To 100
On Error Resume Next
Workbooks("table-" & i & ".csv").Activate
Next i
'ne bug pas mais ne fait pas la boucle (en dehors de pas à pas détaillé)
Windows("table-" & i & ".csv").Activate
Columns("A:A").Select
Selection.Copy
ThisWorkbook.Activate....

2 Par l'utilisation de "Do... until" mais là le code ne fonctionne pas

Dim killString$
Dim i As Integer
Dim Trouve As Boolean
Trouve = False

i = 0
Application.ScreenUpdating = False
Range("M2").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Do
Do While i < 100
i = i + 1
If Workbooks("table-" & i & ".csv").Name <> "" Then
Trouve = True
End If
Loop Until Trouve = True Or i = 100
'bug je ne comprends pas pourquoi
Exit Do
Windows("table-" & i & ".csv").Activate
Columns("A:A").Select
Selection.Copy

Merci pour votre aide, cdlt
 

Staple1600

XLDnaute Barbatruc
Re : VBA - Windows ("x.csv").Activate / "x" var - aller sur le SEUL.csv ouvert

Re


Sinon... objet WMI
ou automation IE par VBA ou VBScript

(voir sur le net (ou d'abord dans la FAQ du forum -pages Wiki MichelXLD)

Bref il y a plusieurs chemins pour aller à Rome.
 

zebanx

XLDnaute Accro
Re : VBA - Windows ("x.csv").Activate / "x" var - aller sur le SEUL.csv ouvert

Merci de m'avoir orienté staples1600

Il doit s'agir de la page 5 du wiki de michelxld mais pas assez habitué pour pouvoir l'adapter à ces deux boucles (for / do until pour un fichier CSV ouvert avec un nom dynamique) . Pour les autres "automation...", difficile pour un novice surement, c'est très supérieur à mon niveau comme la page que vous m'avez communiqué ce matin en première réponse.

Ma problématique est certainement mal exposée, mais les pages sur Windows(*.csv).Activate ne me permettent pas de finaliser et j'ai franchement cherché cet apm.

J'espère que quelqu'un m'orientera, surtout que le premier code en "FOR" fonctionne bien en pas à pas détaillé et qu'il ne manque, et c'est essentiel, que l'aspect boucle pour rechercher le n°"x" de "table-x.CSV" qui est ouverte en dynamique et me permettrait de terminer une macro bien utile.

Bonne soirée -)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16