Bonjour,
j'ai une macro, qui me permet d'aller chercher un fichier Excel, en ouvrant
une boite de dialogue sous le dossier où se trouve mon fichier.
sur un poste normal, tout va bien.
Par contre, en fonctionnement TSE, ça plante là, et je sais pas pourquoi :
-------
ChDrive (Mid(ActiveWorkbook.path, 1, 1))
-----
Merci de votre aide.
YANN
---
Sub IMPORTBAL()
Dim Fichier As String, X
Dim DerLig As Long, DerCol As Integer
Dim Chemin As String, Wk As Workbook
rep = MsgBox("Est-ce une balance qui provient de PGI ?", vbYesNo)
If rep = vbYes Then
[BalPGI] = 1
Else
[BalPGI] = 0
End If
If MsgBox("Ce module va vous permettre d'importer une balance en choisissant
le " & _
"fichier de votre choix." & vbLf & vbLf & _
"Attention, votre balance à importer doit être correcte au niveau des
colonnes." & vbLf & _
"Pour cela, veuillez vous référer au manuel de procédure de REVIS'HOCHE"
& vbLf & vbLf & _
"Les colonnes doivent être identique à la feuille 'GA10' de ce fichier"
& vbLf & vbLf & _
"Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then
Exit Sub
End If
'onglet Balances GA10
With Sheets("GA10")
.[A3:F3000].Value = "" 'effacement
End With
Chemin = ActiveWorkbook.path
If Chemin = "" Then
Chemin = Application.DefaultFilePath
End If
ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '*************PLANTAGE******
ChDir (Chemin)
Application.ScreenUpdating = False
Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False)
If TypeName(Fichier) = "Boolean" Then
MsgBox "Opération annulée. Aucun fichier sélectionné"
Exit Sub
Else
Set Wk = Workbooks.Open(Fichier)
End If
With Wk.ActiveSheet
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
X = .Range(.Range("A2"), .Cells(DerLig, DerCol))
End With
With ThisWorkbook.Sheets("GA10")
.Range("A3").Resize(UBound(X, 1)).ClearContents
.Range("A3").Resize(UBound(X, 1)).NumberFormat = "General"
.Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X
End With
Wk.Close False
End Sub
-------
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sunburn
re, donc, quand j eme pose sur le plantage, j'ai le chemin qui commence par ça : Srv et comme il cherche une lettre, ça plante... comment puis-je y remédier .???? merci. YANN
"Sunburn" a écrit :
Bonjour, j'ai une macro, qui me permet d'aller chercher un fichier Excel, en ouvrant une boite de dialogue sous le dossier où se trouve mon fichier. sur un poste normal, tout va bien. Par contre, en fonctionnement TSE, ça plante là, et je sais pas pourquoi : ------- ChDrive (Mid(ActiveWorkbook.path, 1, 1)) ----- Merci de votre aide. YANN --- Sub IMPORTBAL() Dim Fichier As String, X Dim DerLig As Long, DerCol As Integer Dim Chemin As String, Wk As Workbook rep = MsgBox("Est-ce une balance qui provient de PGI ?", vbYesNo) If rep = vbYes Then [BalPGI] = 1 Else [BalPGI] = 0 End If If MsgBox("Ce module va vous permettre d'importer une balance en choisissant le " & _ "fichier de votre choix." & vbLf & vbLf & _ "Attention, votre balance à importer doit être correcte au niveau des colonnes." & vbLf & _ "Pour cela, veuillez vous référer au manuel de procédure de REVIS'HOCHE" & vbLf & vbLf & _ "Les colonnes doivent être identique à la feuille 'GA10' de ce fichier" & vbLf & vbLf & _ "Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then Exit Sub End If 'onglet Balances GA10 With Sheets("GA10") .[A3:F3000].Value = "" 'effacement End With Chemin = ActiveWorkbook.path If Chemin = "" Then Chemin = Application.DefaultFilePath End If ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '*************PLANTAGE****** ChDir (Chemin) Application.ScreenUpdating = False Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False) If TypeName(Fichier) = "Boolean" Then MsgBox "Opération annulée. Aucun fichier sélectionné" Exit Sub Else Set Wk = Workbooks.Open(Fichier) End If With Wk.ActiveSheet DerLig = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row DerCol = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious).Column X = .Range(.Range("A2"), .Cells(DerLig, DerCol)) End With With ThisWorkbook.Sheets("GA10") .Range("A3").Resize(UBound(X, 1)).ClearContents .Range("A3").Resize(UBound(X, 1)).NumberFormat = "General" .Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X End With Wk.Close False End Sub -------
re,
donc, quand j eme pose sur le plantage, j'ai le chemin qui commence par ça :
\Srv
et comme il cherche une lettre, ça plante...
comment puis-je y remédier .????
merci.
YANN
"Sunburn" a écrit :
Bonjour,
j'ai une macro, qui me permet d'aller chercher un fichier Excel, en ouvrant
une boite de dialogue sous le dossier où se trouve mon fichier.
sur un poste normal, tout va bien.
Par contre, en fonctionnement TSE, ça plante là, et je sais pas pourquoi :
-------
ChDrive (Mid(ActiveWorkbook.path, 1, 1))
-----
Merci de votre aide.
YANN
---
Sub IMPORTBAL()
Dim Fichier As String, X
Dim DerLig As Long, DerCol As Integer
Dim Chemin As String, Wk As Workbook
rep = MsgBox("Est-ce une balance qui provient de PGI ?", vbYesNo)
If rep = vbYes Then
[BalPGI] = 1
Else
[BalPGI] = 0
End If
If MsgBox("Ce module va vous permettre d'importer une balance en choisissant
le " & _
"fichier de votre choix." & vbLf & vbLf & _
"Attention, votre balance à importer doit être correcte au niveau des
colonnes." & vbLf & _
"Pour cela, veuillez vous référer au manuel de procédure de REVIS'HOCHE"
& vbLf & vbLf & _
"Les colonnes doivent être identique à la feuille 'GA10' de ce fichier"
& vbLf & vbLf & _
"Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then
Exit Sub
End If
'onglet Balances GA10
With Sheets("GA10")
.[A3:F3000].Value = "" 'effacement
End With
Chemin = ActiveWorkbook.path
If Chemin = "" Then
Chemin = Application.DefaultFilePath
End If
ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '*************PLANTAGE******
ChDir (Chemin)
Application.ScreenUpdating = False
Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False)
If TypeName(Fichier) = "Boolean" Then
MsgBox "Opération annulée. Aucun fichier sélectionné"
Exit Sub
Else
Set Wk = Workbooks.Open(Fichier)
End If
With Wk.ActiveSheet
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
X = .Range(.Range("A2"), .Cells(DerLig, DerCol))
End With
With ThisWorkbook.Sheets("GA10")
.Range("A3").Resize(UBound(X, 1)).ClearContents
.Range("A3").Resize(UBound(X, 1)).NumberFormat = "General"
.Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X
End With
Wk.Close False
End Sub
-------
re, donc, quand j eme pose sur le plantage, j'ai le chemin qui commence par ça : Srv et comme il cherche une lettre, ça plante... comment puis-je y remédier .???? merci. YANN
"Sunburn" a écrit :
Bonjour, j'ai une macro, qui me permet d'aller chercher un fichier Excel, en ouvrant une boite de dialogue sous le dossier où se trouve mon fichier. sur un poste normal, tout va bien. Par contre, en fonctionnement TSE, ça plante là, et je sais pas pourquoi : ------- ChDrive (Mid(ActiveWorkbook.path, 1, 1)) ----- Merci de votre aide. YANN --- Sub IMPORTBAL() Dim Fichier As String, X Dim DerLig As Long, DerCol As Integer Dim Chemin As String, Wk As Workbook rep = MsgBox("Est-ce une balance qui provient de PGI ?", vbYesNo) If rep = vbYes Then [BalPGI] = 1 Else [BalPGI] = 0 End If If MsgBox("Ce module va vous permettre d'importer une balance en choisissant le " & _ "fichier de votre choix." & vbLf & vbLf & _ "Attention, votre balance à importer doit être correcte au niveau des colonnes." & vbLf & _ "Pour cela, veuillez vous référer au manuel de procédure de REVIS'HOCHE" & vbLf & vbLf & _ "Les colonnes doivent être identique à la feuille 'GA10' de ce fichier" & vbLf & vbLf & _ "Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then Exit Sub End If 'onglet Balances GA10 With Sheets("GA10") .[A3:F3000].Value = "" 'effacement End With Chemin = ActiveWorkbook.path If Chemin = "" Then Chemin = Application.DefaultFilePath End If ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '*************PLANTAGE****** ChDir (Chemin) Application.ScreenUpdating = False Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False) If TypeName(Fichier) = "Boolean" Then MsgBox "Opération annulée. Aucun fichier sélectionné" Exit Sub Else Set Wk = Workbooks.Open(Fichier) End If With Wk.ActiveSheet DerLig = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row DerCol = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious).Column X = .Range(.Range("A2"), .Cells(DerLig, DerCol)) End With With ThisWorkbook.Sheets("GA10") .Range("A3").Resize(UBound(X, 1)).ClearContents .Range("A3").Resize(UBound(X, 1)).NumberFormat = "General" .Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X End With Wk.Close False End Sub -------
michdenis
Voici une réponse que Frédéric Sigonneau faisait sur le sujet :
Je n'ai pas de moyen de tester mais j'ai déjà lu que ChDir ne donnait pas les résultats attendus quand on cherche à accéder au dossier d'un ordinateur distant. Il existe une fonction de substitution pour contourner ce problème, qui pourrait peut-être t'aider à régler ton problème (code à recopier dans un module standard du classeur où tu veux l'utiliser) :
'=============== 'une procédure pour remplacer ChDir avec un lecteur/répertoire réseau
'Déclaration de L'API dans le haut du module standard Private Declare Function SetCurrentDirectoryA Lib _ "kernel32" (ByVal lpPathName As String) As Long '---------------------------- Sub ChDirNet(szPath As String) 'collectif, d'après Laurent Longre, mpep Dim lReturn As Long lReturn = SetCurrentDirectoryA(szPath) If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path." End Sub
'Example of usage '---------------------------- Sub GetFile() On Error GoTo ErrHandler ChDirNet "LOGD0FILESOGILVTWDocsTemp" Exit Sub ErrHandler: MsgBox "Couldn't set path" End Sub '===============
"Sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'ai une macro, qui me permet d'aller chercher un fichier Excel, en ouvrant une boite de dialogue sous le dossier où se trouve mon fichier. sur un poste normal, tout va bien. Par contre, en fonctionnement TSE, ça plante là, et je sais pas pourquoi : ------- ChDrive (Mid(ActiveWorkbook.path, 1, 1)) ----- Merci de votre aide. YANN --- Sub IMPORTBAL() Dim Fichier As String, X Dim DerLig As Long, DerCol As Integer Dim Chemin As String, Wk As Workbook rep = MsgBox("Est-ce une balance qui provient de PGI ?", vbYesNo) If rep = vbYes Then [BalPGI] = 1 Else [BalPGI] = 0 End If If MsgBox("Ce module va vous permettre d'importer une balance en choisissant le " & _ "fichier de votre choix." & vbLf & vbLf & _ "Attention, votre balance à importer doit être correcte au niveau des colonnes." & vbLf & _ "Pour cela, veuillez vous référer au manuel de procédure de REVIS'HOCHE" & vbLf & vbLf & _ "Les colonnes doivent être identique à la feuille 'GA10' de ce fichier" & vbLf & vbLf & _ "Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then Exit Sub End If 'onglet Balances GA10 With Sheets("GA10") .[A3:F3000].Value = "" 'effacement End With Chemin = ActiveWorkbook.path If Chemin = "" Then Chemin = Application.DefaultFilePath End If ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '*************PLANTAGE****** ChDir (Chemin) Application.ScreenUpdating = False Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False) If TypeName(Fichier) = "Boolean" Then MsgBox "Opération annulée. Aucun fichier sélectionné" Exit Sub Else Set Wk = Workbooks.Open(Fichier) End If With Wk.ActiveSheet DerLig = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row DerCol = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious).Column X = .Range(.Range("A2"), .Cells(DerLig, DerCol)) End With With ThisWorkbook.Sheets("GA10") .Range("A3").Resize(UBound(X, 1)).ClearContents .Range("A3").Resize(UBound(X, 1)).NumberFormat = "General" .Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X End With Wk.Close False End Sub -------
Voici une réponse que Frédéric Sigonneau faisait sur le sujet :
Je n'ai pas de moyen de tester mais j'ai déjà lu que ChDir ne donnait pas les
résultats attendus quand on cherche à accéder au dossier d'un ordinateur
distant. Il existe une fonction de substitution pour contourner ce problème, qui
pourrait peut-être t'aider à régler ton problème (code à recopier dans un module
standard du classeur où tu veux l'utiliser) :
'=============== 'une procédure pour remplacer ChDir avec un lecteur/répertoire réseau
'Déclaration de L'API dans le haut du module standard
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
'----------------------------
Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'Example of usage
'----------------------------
Sub GetFile()
On Error GoTo ErrHandler
ChDirNet "\LOGD0FILESOGILVTWDocsTemp"
Exit Sub
ErrHandler:
MsgBox "Couldn't set path"
End Sub
'===============
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 8773F3F7-1C0A-4055-989D-01B88EE56B3C@microsoft.com...
Bonjour,
j'ai une macro, qui me permet d'aller chercher un fichier Excel, en ouvrant
une boite de dialogue sous le dossier où se trouve mon fichier.
sur un poste normal, tout va bien.
Par contre, en fonctionnement TSE, ça plante là, et je sais pas pourquoi :
-------
ChDrive (Mid(ActiveWorkbook.path, 1, 1))
-----
Merci de votre aide.
YANN
---
Sub IMPORTBAL()
Dim Fichier As String, X
Dim DerLig As Long, DerCol As Integer
Dim Chemin As String, Wk As Workbook
rep = MsgBox("Est-ce une balance qui provient de PGI ?", vbYesNo)
If rep = vbYes Then
[BalPGI] = 1
Else
[BalPGI] = 0
End If
If MsgBox("Ce module va vous permettre d'importer une balance en choisissant
le " & _
"fichier de votre choix." & vbLf & vbLf & _
"Attention, votre balance à importer doit être correcte au niveau des
colonnes." & vbLf & _
"Pour cela, veuillez vous référer au manuel de procédure de REVIS'HOCHE"
& vbLf & vbLf & _
"Les colonnes doivent être identique à la feuille 'GA10' de ce fichier"
& vbLf & vbLf & _
"Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then
Exit Sub
End If
'onglet Balances GA10
With Sheets("GA10")
.[A3:F3000].Value = "" 'effacement
End With
Chemin = ActiveWorkbook.path
If Chemin = "" Then
Chemin = Application.DefaultFilePath
End If
ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '*************PLANTAGE******
ChDir (Chemin)
Application.ScreenUpdating = False
Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False)
If TypeName(Fichier) = "Boolean" Then
MsgBox "Opération annulée. Aucun fichier sélectionné"
Exit Sub
Else
Set Wk = Workbooks.Open(Fichier)
End If
With Wk.ActiveSheet
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
X = .Range(.Range("A2"), .Cells(DerLig, DerCol))
End With
With ThisWorkbook.Sheets("GA10")
.Range("A3").Resize(UBound(X, 1)).ClearContents
.Range("A3").Resize(UBound(X, 1)).NumberFormat = "General"
.Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X
End With
Wk.Close False
End Sub
-------
Voici une réponse que Frédéric Sigonneau faisait sur le sujet :
Je n'ai pas de moyen de tester mais j'ai déjà lu que ChDir ne donnait pas les résultats attendus quand on cherche à accéder au dossier d'un ordinateur distant. Il existe une fonction de substitution pour contourner ce problème, qui pourrait peut-être t'aider à régler ton problème (code à recopier dans un module standard du classeur où tu veux l'utiliser) :
'=============== 'une procédure pour remplacer ChDir avec un lecteur/répertoire réseau
'Déclaration de L'API dans le haut du module standard Private Declare Function SetCurrentDirectoryA Lib _ "kernel32" (ByVal lpPathName As String) As Long '---------------------------- Sub ChDirNet(szPath As String) 'collectif, d'après Laurent Longre, mpep Dim lReturn As Long lReturn = SetCurrentDirectoryA(szPath) If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path." End Sub
'Example of usage '---------------------------- Sub GetFile() On Error GoTo ErrHandler ChDirNet "LOGD0FILESOGILVTWDocsTemp" Exit Sub ErrHandler: MsgBox "Couldn't set path" End Sub '===============
"Sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'ai une macro, qui me permet d'aller chercher un fichier Excel, en ouvrant une boite de dialogue sous le dossier où se trouve mon fichier. sur un poste normal, tout va bien. Par contre, en fonctionnement TSE, ça plante là, et je sais pas pourquoi : ------- ChDrive (Mid(ActiveWorkbook.path, 1, 1)) ----- Merci de votre aide. YANN --- Sub IMPORTBAL() Dim Fichier As String, X Dim DerLig As Long, DerCol As Integer Dim Chemin As String, Wk As Workbook rep = MsgBox("Est-ce une balance qui provient de PGI ?", vbYesNo) If rep = vbYes Then [BalPGI] = 1 Else [BalPGI] = 0 End If If MsgBox("Ce module va vous permettre d'importer une balance en choisissant le " & _ "fichier de votre choix." & vbLf & vbLf & _ "Attention, votre balance à importer doit être correcte au niveau des colonnes." & vbLf & _ "Pour cela, veuillez vous référer au manuel de procédure de REVIS'HOCHE" & vbLf & vbLf & _ "Les colonnes doivent être identique à la feuille 'GA10' de ce fichier" & vbLf & vbLf & _ "Etes-vous sûr de vouloir continuer ?", vbYesNo) = vbNo Then Exit Sub End If 'onglet Balances GA10 With Sheets("GA10") .[A3:F3000].Value = "" 'effacement End With Chemin = ActiveWorkbook.path If Chemin = "" Then Chemin = Application.DefaultFilePath End If ChDrive (Mid(ActiveWorkbook.path, 1, 1)) '*************PLANTAGE****** ChDir (Chemin) Application.ScreenUpdating = False Fichier = Application.GetOpenFilename("(*.xls),xls", , , , False) If TypeName(Fichier) = "Boolean" Then MsgBox "Opération annulée. Aucun fichier sélectionné" Exit Sub Else Set Wk = Workbooks.Open(Fichier) End If With Wk.ActiveSheet DerLig = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row DerCol = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious).Column X = .Range(.Range("A2"), .Cells(DerLig, DerCol)) End With With ThisWorkbook.Sheets("GA10") .Range("A3").Resize(UBound(X, 1)).ClearContents .Range("A3").Resize(UBound(X, 1)).NumberFormat = "General" .Range("A3").Resize(UBound(X, 1), UBound(X, 2)) = X End With Wk.Close False End Sub -------