Problème importation - VB/VBA/VBS - Programmation
Marsh Posté le 24-05-2013 à 00:42:22
Bonsoir. Édites ton message et utilise l'icône prévu pour le code, merci.
Sinon rien qu'en consultant l'aide de la propriété RefersToRange …
Marsh Posté le 23-05-2013 à 22:23:38
Bonjour, j'essaie depuis quelques jours d'importer des données d'un fichier à l'autre et j'obtiens toujours un message d'erreur. Je ne suis pas assez avancé en programmation vba pour corriger mon problème. J'obtiens le message suivant : [Variable objet ou variable bloc With non définie (erreur 91)].
Mon message d'erreur arrive à : (OldTaux_1.Names("Nom_i" ).RefersToRange.Value = Varia)
Voici mon code :
Private Sub Importer_tout_Click()
Dim OldValidation As Worksheet, NewValidation As Worksheet
Dim monfichier As String, Nomdufichier As String
Dim entier As Long
Dim OldWb As Workbook, NewWb As Workbook
Dim OldTaux_1 As Worksheet, OldHist_1 As Worksheet, OldVie_1 As Worksheet, OldIld_1 As Worksheet
Dim NewTaux_1 As Worksheet, NewHist_1 As Worksheet, NewVie_1 As Worksheet, NewIld_1 As Worksheet
Dim Nom_i As String
Dim Varia As Variant
Application.ScreenUpdating = False
monfichier = Fichier_import.Value
'Obtenir le nom de l'ancien fichier dans le textbox
entier = Len(monfichier) 'le nombre de caractère dans mon fichier
Do Until Mid(monfichier, entier, 1) = "\"
entier = entier - 1
Loop
Nomdufichier = Right(monfichier, Len(monfichier) - entier) 'Permet d'obtenir le nom du fichier sans le début
Set NewWb = ActiveWorkbook
Set NewTaux_1 = GetWsFromCodeName(NewWb, "Sheet1" )
Set NewHist_1 = GetWsFromCodeName(NewWb, "Sheet2" )
Set NewVie_1 = GetWsFromCodeName(NewWb, "Sheet3" )
Workbooks.Open (monfichier)
Set OldWb = Workbooks(Nomdufichier)
Set OldTaux_1 = GetWsFromCodeName(OldWb, "Sheet1" )
Set OldHist_1 = GetWsFromCodeName(OldWb, "Sheet2" )
Set OldVie_1 = GetWsFromCodeName(OldWb, "Sheet3" )
For i = 1 To 2
Set Varia = Nothing
Workbooks(Nomdufichier).Activate
OldTaux_1.Names("Nom_i" ).RefersToRange.Value = Varia
Windows(NewWb).Activate
NewTaux_1.Names("Nom_i" ).RefersToRange.Value = Varia
Next i
OldWb.Close
Application.ScreenUpdating = True
End Sub
______________________
' Fonction importer le fichier dans la boîte
Private Sub Parcourir_Click()
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
UserForm1.Fichier_import.Text = .SelectedItems(1)
End With
End Sub
_______________________
Function GetWsFromCodeName(wb As Workbook, CodeName As String) As Excel.Worksheet
Dim ws As Excel.Worksheet
For Each ws In wb.Worksheets
If ws.CodeName = CodeName Then
Set GetWsFromCodeName = ws
Exit For
End If
Next ws
End Function
Merci bcp à l'avance !