erreur 424 objet requis

  • Initiateur de la discussion Initiateur de la discussion Marie2807
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Marie2807

XLDnaute Nouveau
Bonjour j'ai remarqué qu'il existait déjà une discussion sur le sujet,mais disons qu'elle est loin de pouvoir m'aider

Voici mon code

Code:
Public Sub importation()
On Error GoTo Err_GetSource

    Dim fDialog As FileDialog
    Dim varTemp As Variant
    Dim strFPath As String
    Dim strFPath2 As String
    Dim xlBook As Excel.Workbook
    Dim xlBook2 As Excel.Workbook
    Dim nbfeuille As Integer
    Dim nomfeuille As Variant

    Application.ScreenUpdating = False '
    
    MsgBox "Sélectionner le fichier plansemxxxxDSR.csv avant celui plansemxxxx.csv"
    
     'Initialisations
    strFPath = ""
    strFPath2 = ""
    Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
    
    'Boîte de selection du fichier source
    With fDialog
        .AllowMultiSelect = False 'Limite la selection à un seul fichier
        .Filters.Add "Fichier Excel", "*.csv", 1
        .Title = "Choisir un rapport"
        .InitialView = msoFileDialogViewDetails
        .Show
        For Each varTemp In .SelectedItems 'Boucle au cas ou (sécurité)
            strFPath = varTemp 'Assigne le chemin complet du ficher selectionné
        Next varTemp
    End With

    Set xlBook = Workbooks.Open(strFPath)
    
    'Boîte de selection du fichier a mettre dedans
    With fDialog
      .AllowMultiSelect = False 'Limite la selection à un seul fichier
      .Filters.Add "Fichier Excel", "*.csv", 1
      .Title = "Choisir un rapport"
      .InitialView = msoFileDialogViewDetails
      .Show
         For Each varTemp In .SelectedItems 'Boucle au cas ou (sécurité)
              strFPath2 = varTemp 'Assigne le chemin complet du ficher selectionné
         Next varTemp
    End With
    
    Set xlBook2 = Workbooks.Open(strFPath2)
    
    
    'Ouvre le fichier source pour traitement futur
    If strFPath <> "" And strFPath2 <> "" Then
        
     ConvertirValeur xlBook, xlBook2
        
Exit_GetSource:
    'Libération
    Set fDialog = Nothing
    Set varTemp = Nothing
    strFPath = ""
    
    'Ferme la feuille qui est ouverte dans la variable s'il ya lieu
    If Not (xlBook Is Nothing) Then xlBook.Close
        Set xlBook = Nothing
    End If
    Application.ScreenUpdating = True ' permets de voir le processus durant l'exécution
    
    Exit Sub

Err_GetSource:
    MsgBox "Une erreur est survenue dans la routine GetSource" & vbCrLf & vbCrLf & "Erreur technique NO : " & Err.Number & " - " & Err.Description & vbCrLf & vbCrLf & "Le traitement a du être interrompu!"
    Resume Next 'Exit_GetSource
    
End Sub

Public Sub ConvertirValeur(ByRef wbcache As Workbook, ByRef wbacces As Workbook)

With wbcache
    Columns("A:A").Select
    vselect.TextToColumns Destination:=Cells(1, 1), _
    DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
    :=Array(1, xlGeneralFormat), TrailingMinusNumbers:=True
End With

End Sub

Bref l'erreur se situe au niveau de la dernière ligne de code dans la sub ConvertirValeur

Merci

Marie
 
Re : erreur 424 objet requis

Salut Marie2807,

Dans ta sub tu ne qualifie pas ton objet avec le point devant

Code:
Public Sub ConvertirValeur(ByRef wbcache As Workbook, ByRef wbacces As Workbook)
With wbcache
    [COLOR=blue][B].[/B][/COLOR]Columns("A:A").Select  ' ICI il manquait le point devant
    vselect.TextToColumns Destination:=[COLOR=blue][B]MonWbk.[/B][/COLOR]Cells(1, 1), _
    DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
    :=Array(1, xlGeneralFormat), TrailingMinusNumbers:=True
End With
End Sub

A+
 
Re : erreur 424 objet requis

Re,

Oups, désolé, je suis allé trop vite 😱

Tu dois avoir dans le code :
MonWorkbook.MaFeuille.Columns()

ou

MonWorkbook.MaFeuille.Cells(1, 1)

Donc à modifier en conséquence 😉
 
Re : erreur 424 objet requis

bonjour, bien je ne sais pas trop si j'ai bien fais, sauf que j'ai déja un with, donc je sais pas si je peux ré-écrire encore le thisworb...

Avec ce code, maintenant il mets l'erreur de propriété d'objet , mais encore une fois sur la dernière ligne du code

Merci encore

Marie

Code:
Public Sub ConvertirValeur(ByRef wbcache As Workbook, ByRef wbacces As Workbook)

With wbcache
    Columns("A:A").Select
   .TextToColumns Destination:=Sheets(1).Cells(1, 1), _
    DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
    :=Array(1, xlGeneralFormat), TrailingMinusNumbers:=True
End With

End Sub
 
Re : erreur 424 objet requis

Bonjour Marie, Bruno

pas tout suivi, mais essaye peut être comme ceci, conversion de la colonne A et renvoie des données dans la même colonne de la même feuille du classeur :

Code:
With wbcache.Worksheets("NomDeLaFeuille")
    .Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _
        Comma:=True
End With

d'autre part, il me semble que l'argument "TrailingMinusNumbers" est apparu sur les versions 2002 ou 2003 d'Excel, donc si tu as une version antérieure cela doit boguer.

bonne journée
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
223
Réponses
4
Affichages
461
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
817
Réponses
2
Affichages
511
Réponses
3
Affichages
672
Retour