Probleme : OBJET REQUIS

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 !

MrAntonin

XLDnaute Nouveau
Bonjour,
J'ai un soucis avec mon code suivant :
VB:
Sub Importer()
Dim objShell As Object, objFolder As Object
Dim Chemin As String, Fichier As String, Feuil As String, valPlage As String

Dim i As Integer
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)

If objFolder Is Nothing Then
    MsgBox "Abandon opérateur", vbCritical, "Annulation"
Else 
    Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & "\"
    Fichier = Dir(Chemin & "*.xls")
    Do While Len(Fichier) > 0
        If Fichier <> ThisWorkbook.Name Then
            valPlage = Range(Cells(1, 1), Cells(Range("A65536").End(xlUp).Row, _
                Range("IV1").End(xlToLeft).Column)).Address
            ThisWorkbook.Names.Add "Plage", _
            RefersTo:="='" & Chemin & "[" & Fichier & "]Feuil'!" & valPlage
            With Sheets(2)
                .[valPlage] = "=Plage"
                .[valPlage].Copy
                While i <= 0
                    Sheets(1).Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
                    i = i + 1
                Wend
                    Sheets(1).Range("A" & Rows.Count).End(xlUp).Offset(0, 0).PasteSpecial xlPasteValues
            End With
        End If
        Fichier = Dir()
    Loop
End If
End Sub

Ce code permet de mettre a la suites plusieurs feuilles Excel.

Mon erreur viens de ma variable "valPlage" qui est renseignée par :
Code:
  valPlage = Range(Cells(1, 1), Cells(Range("A65536").End(xlUp).Row, _

                Range("IV1").End(xlToLeft).Column)).Address

valPlage renvoie bien la plage voulu mais au moment du .[varPlage] ="=Plage" j'ai une erreur d'exécution qui me dis "Objet requis"

Si jamais quelqu'un voit d'où vient le problème...

En vous remerciant par avance pour vos réponses,
Cordialement,
MrAntonin
 
Bonjour,

Tout est dit dans l'aide (F1), ou presque :
Range.jpg

Il suffit de préciser pour la Cellule 1 que , comme pour la Cellule 2, il peut s'agir d'un objet Range.

Mais il ne s'agit ni d'un numéro de ligne, ni d'un numéro de colonne, c'est pour cela que VBA demande un objet !
 
bonjour valplage devrait être adresseplage
dim plage as range'object range
set plage= Range(Cells(1, 1), Cells(Range("A65536").End(xlUp).Row, _
Range("IV1").End(xlToLeft).Column))
plage.copy
.[valPlage] = "=Plage" et elle est en trop
.[valPlage].Copy peut aller si après adress tu ajoutes (0,0) qui enlève les 2 $
 
- 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

Réponses
4
Affichages
177
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
2
Affichages
201
Retour