Bonjour à tous,
Je vous contacte, car j'ai besoin de votre aide pour corriger une macro créée à partir de son enregistrement sous Excel (pas optimisée en fait, moche, mais fonctionnelle)…
Elle est fait pour demander de copier la cellule (variable) d'une première feuille, aller sur un site internet et coller dans l'URL, la valeur de la cellule copier et mettre le tableau souhaité dans une seconde feuille, une fois cette étape passée copier une cellule dans cette nouvelle feuille et la coller dans une troisième puis revenir sur la seconde feuille et effacer le contenu de celle-ci sans effacer la requête afin de recommencer avec une boucle, car il y a plusieurs cellules de la première feuille à copier tant que la cellule suivante de la colonne n'est pas vide… je crois que c'est clair comme cela non…
Je pense que l'erreur vient du fait que j'appelle mal la cellule " Sheets("feuille1").Cells(2, J)" car je ne sais pas comment faire pour désigner la cellule Bj de la feuille1 (avec j variable)
Mais pour plus de clarté, voilà ma macro
------------------------
Sub Yahoo()
'
' Code_Classification_Yahoo Macro
'
Dim J As Integer
J = 18
If Sheets("feuille1").Cells(2, J) <> "" Then
Sheets("feuille2").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://fr.finance.yahoo.com/q/ls?s=" & Sheets("feuille1").Cells(2, J), Destination:=Range( _
"$B$3")) ' en fait ici je voudrait aussi faire varier le copiage vers le bas
.Name = "ls?s=" & Sheets("feuille1").Cells(2, J)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.saveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = """yfncsubtit"",15"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Sheets("feuille2").Select
Range("C5").Select
Selection.Copy
Sheets("feuille3").Select
Range("$K$36").Select
ActiveSheet.Paste
Sheets("feuille2").Select
Range("B3:C9").Select
Application.CutCopyMode = False
Selection.QueryTable.Delete
Selection.ClearContents
J = J + 1
End If
End Sub
------------------
Merci d'avance pour votre aide
E.C
Je vous contacte, car j'ai besoin de votre aide pour corriger une macro créée à partir de son enregistrement sous Excel (pas optimisée en fait, moche, mais fonctionnelle)…
Elle est fait pour demander de copier la cellule (variable) d'une première feuille, aller sur un site internet et coller dans l'URL, la valeur de la cellule copier et mettre le tableau souhaité dans une seconde feuille, une fois cette étape passée copier une cellule dans cette nouvelle feuille et la coller dans une troisième puis revenir sur la seconde feuille et effacer le contenu de celle-ci sans effacer la requête afin de recommencer avec une boucle, car il y a plusieurs cellules de la première feuille à copier tant que la cellule suivante de la colonne n'est pas vide… je crois que c'est clair comme cela non…
Je pense que l'erreur vient du fait que j'appelle mal la cellule " Sheets("feuille1").Cells(2, J)" car je ne sais pas comment faire pour désigner la cellule Bj de la feuille1 (avec j variable)
Mais pour plus de clarté, voilà ma macro
------------------------
Sub Yahoo()
'
' Code_Classification_Yahoo Macro
'
Dim J As Integer
J = 18
If Sheets("feuille1").Cells(2, J) <> "" Then
Sheets("feuille2").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://fr.finance.yahoo.com/q/ls?s=" & Sheets("feuille1").Cells(2, J), Destination:=Range( _
"$B$3")) ' en fait ici je voudrait aussi faire varier le copiage vers le bas
.Name = "ls?s=" & Sheets("feuille1").Cells(2, J)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.saveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = """yfncsubtit"",15"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Sheets("feuille2").Select
Range("C5").Select
Selection.Copy
Sheets("feuille3").Select
Range("$K$36").Select
ActiveSheet.Paste
Sheets("feuille2").Select
Range("B3:C9").Select
Application.CutCopyMode = False
Selection.QueryTable.Delete
Selection.ClearContents
J = J + 1
End If
End Sub
------------------
Merci d'avance pour votre aide
E.C