Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

importation feuille et boucle

2 réponses
Avatar
enzo
Bonjour
Je souhaite adapter cette macro qui importe une feuille en utilisant le
chemin d'accés ,le nom du fichier et le nom de la feuille indiquées en
A2,B2,C2 en créant une boucle pour toutes les cellules comprises entre A2
et C20.
peux t'on trier les feuilles importées par ordre alpha.

merci

Sub import_feuille()


strChemin = Range("a2")
strFichierSource = Range("b2")
strFeuilleSource = Range("c2")

'IMPORT DE LA FEUILLE 'source' DANS LE CLASSEUR ACTIF
Set shtFeuille = GetObject(strChemin & "\" &
strFichierSource).Sheets(strFeuilleSource)
GetObject(strChemin & "\" & strFichierSource).Sheets(strFeuilleSource).Copy
after:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)

Dim Name As String
Name = strFeuilleSource & Range("c2")
Application.ScreenUpdating = False
ActiveSheet.Name = (Name)


'REFERMER LE CLASSEUR SOURCE MASQUÉ
'suppression du message d'alerte
Application.DisplayAlerts = False
Windows(strFichierSource).Visible = True
ActiveWindow.Close

End Sub

2 réponses

Avatar
JLuc
*Bonjour enzo*,
Pour la boucle, il n'y a pas de difficultes particulieres :

Sub import_feuille()

Dim Name As String
For x = 2 To 20 'Lignes 2 à 20
strChemin = Cells(x, 1)
strFichierSource = Cells(x, 2)
strFeuilleSource = Cells(x, 3)

'IMPORT DE LA FEUILLE 'source' DANS LE CLASSEUR ACTIF
Set shtFeuille = GetObject(strChemin & "" & _
strFichierSource).Sheets(strFeuilleSource)
shtFeuille.Copy _
after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

Application.ScreenUpdating = False
ActiveSheet.Name = strFeuilleSource
Application.DisplayAlerts = False
Set shtFeuille = Nothing
Next x

'REFERMER LE CLASSEUR SOURCE MASQUÉ
'suppression du message d'alerte
Windows(strFichierSource).Visible = True
ActiveWindow.Close

End Sub


Bonjour
Je souhaite adapter cette macro qui importe une feuille en utilisant le
chemin d'accés ,le nom du fichier et le nom de la feuille indiquées en
A2,B2,C2 en créant une boucle pour toutes les cellules comprises entre A2
et C20.
peux t'on trier les feuilles importées par ordre alpha.
Pour le trie alpha des feuilles, je le laisse a d'autres specialistes



merci

Sub import_feuille()


strChemin = Range("a2")
strFichierSource = Range("b2")
strFeuilleSource = Range("c2")

'IMPORT DE LA FEUILLE 'source' DANS LE CLASSEUR ACTIF
Set shtFeuille = GetObject(strChemin & "" &
strFichierSource).Sheets(strFeuilleSource)
GetObject(strChemin & "" & strFichierSource).Sheets(strFeuilleSource).Copy
after:¬tiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)

Dim Name As String
Name = strFeuilleSource & Range("c2")
Application.ScreenUpdating = False
ActiveSheet.Name = (Name)


'REFERMER LE CLASSEUR SOURCE MASQUÉ
'suppression du message d'alerte
Application.DisplayAlerts = False
Windows(strFichierSource).Visible = True
ActiveWindow.Close

End Sub


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
JLuc
*Bonjour enzo*,
peux t'on trier les feuilles importées par ordre alpha.


Pour cette deuxieme question, j'ai pondu ca : (a toi de l'adapter)

Sub test()
Dim Arr
NBsheets = Sheets.Count
For x = 1 To 10 'Nom des feuilles A1:A10
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Sheets(1).Cells(x, 1)
Next
nbsheetsfin = Sheets.Count - NBsheets
ReDim Arr(1 To nbsheetsfin)
For x = 1 To UBound(Arr)
Arr(x) = Sheets(x + NBsheets).Name
Next
For x = 1 To UBound(Arr) - 1
For y = x + 1 To UBound(Arr)
If Arr(x) > Arr(y) Then
Var = Arr(x)
Arr(x) = Arr(y)
Arr(y) = Var
End If
Next
Next
For x = 0 To UBound(Arr) - 1
Sheets(Arr(x + 1)).Move after:=Sheets(NBsheets + x)
Next
End Sub

--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O