VBA Excel: erreur d'execution '438' lors du copier / coller
Résolu
Aurelie000
-
Aurelie000 -
Aurelie000 -
Bonjour,
Je bidouille un peu en VBA, mais je ne suis pas très douée (j'apprends lors de chaque macro toute seule).
Je vous explique mon problème, si quelqu'un a une idée par hasard.
J'ai un fichier excel qui contient la macro, je lui demande d'ouvrir un fichier csv, je veux récupérer le contenu du fichier, et le coller dans un onglet de mon fichier excel de base.
Voici le code que j'ai utilisé:
J'ai l'erreur '438' proprieté ou méthode non gérée par cet objet sur cette ligne de code
Workbooks(2).Columns("A:A").Value=ThisWorkbook.Worksheets("Brut1").Columns("A:A").Value
J'ai essayé d'autres codes pour ce copier coller mais toujours cette erreur
Et aussi
Si quelqu'un a une idée je serai preneuse :))
Merci d'avance
Bonne soirée
Aurélie
Je bidouille un peu en VBA, mais je ne suis pas très douée (j'apprends lors de chaque macro toute seule).
Je vous explique mon problème, si quelqu'un a une idée par hasard.
J'ai un fichier excel qui contient la macro, je lui demande d'ouvrir un fichier csv, je veux récupérer le contenu du fichier, et le coller dans un onglet de mon fichier excel de base.
Voici le code que j'ai utilisé:
Sub test()
Dim Brut1 As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogOpen)
Dim vrtSelectedItem As Variant
With fd
.AllowMultiSelect = True
If .Show = -1 Then
.Execute
Else
Exit Sub
End If
End With
Workbooks(2).Columns("A:A").Value = ThisWorkbook.Worksheets("Brut1").Columns("A:A").Value
End Sub
J'ai l'erreur '438' proprieté ou méthode non gérée par cet objet sur cette ligne de code
Workbooks(2).Columns("A:A").Value=ThisWorkbook.Worksheets("Brut1").Columns("A:A").Value
J'ai essayé d'autres codes pour ce copier coller mais toujours cette erreur
Workbooks(2).Columns("A:A").Copy _
Destination:=ThisWorkbook.Worksheets("Brut1").Columns("A:A")
Et aussi
Workbooks(2).Activate
Cells.Select
Selection.Copy
ThisWorkbook.Activate
Worksheets("Brut1").Activate
Range("A1").Select
Selection.Paste
Si quelqu'un a une idée je serai preneuse :))
Merci d'avance
Bonne soirée
Aurélie
Configuration: Windows / Chrome 87.0.4280.66
A voir également:
- Erreur 438 vba
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
3 réponses
Bonjour,
Avec ce code :
Avec ce code :
Option Explicit Sub test() Dim wbk As Workbook Dim rng As Range Dim cel As Range Dim nom As String With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = False If .Show = -1 Then nom = .SelectedItems.Item(1) ' Ouvrir le fichier csv "français" avec séparateur point virgule Set wbk = Workbooks.Open(Filename:=nom, Format:=4, local:=True) ' pour un cvs "anglais" avec séparateur virgule, remplacer la ligne précédente par : ' Set wbk = Workbooks.Open(Filename:=nom, Format:=2, local:=False) ' Plage source Set rng = wbk.Worksheets(1).UsedRange ' Cellule de destination Set cel = ThisWorkbook.Worksheets("Brut1").Range("A1") ' Copie des valeurs cel.Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value ' Fermer le fichier csv wbk.Close False End If End With End Sub
Bonjour Patrice,
Merci beaucoup !!!
Ca faisait 2 jours que je tournais en rond avec cet erreur. J'avais beau chercher sur internet, je n'ai pas réussi toute seule.
Ton code marche super bien, merci encore.
Question bete: as tu remarquer quelque chose qui n'allait pas dans ma façon de faire?
Bonne journée
Merci beaucoup !!!
Ca faisait 2 jours que je tournais en rond avec cet erreur. J'avais beau chercher sur internet, je n'ai pas réussi toute seule.
Ton code marche super bien, merci encore.
Question bete: as tu remarquer quelque chose qui n'allait pas dans ma façon de faire?
Bonne journée
Bonjour,
Pour un début, c'est très bien.
Je conseille de toujours commencer les modules par Option Explicit, ça oblige à déclarer toutes les variables.
Il faut éviter les Activate et Select (bannir du code comme ton 3ème essai).
Il est mieux d'éviter Exit Sub, ça provoque un sortie prématurée de la procédure avec un risque d'oublier le retour au contexte initial.
Cordialement
Patrice
Pour un début, c'est très bien.
Je conseille de toujours commencer les modules par Option Explicit, ça oblige à déclarer toutes les variables.
Il faut éviter les Activate et Select (bannir du code comme ton 3ème essai).
Il est mieux d'éviter Exit Sub, ça provoque un sortie prématurée de la procédure avec un risque d'oublier le retour au contexte initial.
Cordialement
Patrice