Macro complémentaire xla
Bonjour tout le monde
je suis nouvelle dans le forum
bon mon soucis c'est que : j'ai installé récemment une macro complémentaire xla suivant tous les instructions mais mon probléme c'est que je ne peux pas exécuter ma macro xla correctement ça me donne des erreurs genre débogage pour chaque ligne de mon code :
(l'indice n’appartient pas à la sélection ... membre de méthode ou de données introuvable...) et que je trouve bizarre et flippant pcq le code marche très bien quand il n'est pas sous macro complémentaire,
et les erreurs apparaissent une fois je change le nom d'une feuille ou je supprime une ; il l'a reconnu pas malgré que c'est variable et je donne pas de noms à mes feuilles dans la macro
aidez moi svvvp
lignes d erreurs :
Set FL1 = worksheets(sh.Name)
Cells(i, 1).Value = FL1.Name
voici mon code en entier
Sub Bouton2_Clic()
Dim FL1 As worksheets, Cell As Range, NoCol1 As Double, NoCol2 As Long
Dim DerLig As Long, Plage As Range, i As Double
Dim wk As Worksheet, NewSheet As Worksheet
Dim exist As Boolean
Dim nom As String
'**********************************
nom = "BDD"
exist = False
For Each wk In Worksheets
If wk.Name = "BDD" Then
exist = True
Exit For
End If
Next wk
If exist = False Then
With ThisWorkbook
Worksheets.Add.Name = "BDD"
End With
End If
'*********************************
Sheets("BDD").Select
Cells.Select
Selection.ClearContents
Sheets("BDD").Cells(1, 1).Select
Cells(1, 1).Value = "Feuille"
Cells(1, 2).Value = "type"
Cells(1, 3).Value = "ligne"
Cells(1, 4).Value = "colonne"
Cells(1, 5).Value = "valeur n-1"
i = 2
For Each sh In ThisWorkbook.Sheets
If Not sh.Name = "BDD" And Not sh.Name = "Read me" Then
Set FL1 = worksheets(sh.Name)
' *****************************
Set Plage = Range("A1")
While Range(Plage.End(xlDown).Address(rowabsolute:=False, columnabsolute:=False)).Value <> ""
Set Plage = Range(Plage.End(xlDown).Address(rowabsolute:=False, columnabsolute:=False))
Wend
Set Plage = Range("A1:" & Plage.Address(rowabsolute:=False, columnabsolute:=False))
For Each Cell In FL1
Cells(i, 1).Value = FL1.Name
Cells(i, 5).Value = Cell.Formula
If VarType(Cell) = 8 Then
Cells(i, 2).Value = "C"
Else
If VarType(Cell) = 5 Then
Cells(i, 2).Value = "N"
Else
If VarType(Cell) = 10 Then
Cells(i, 2).Value = "N"
Else
If VarType(Cell) = 0 Then
Cells(i, 2).Value = "Non définie"
End If
End If
End If
End If
Cells(i, 3).Value = Cell.Row
Cells(i, 4).Value = Cell.Column
i = i + 1
Next
End If
Next
Set FL1 = Nothing
Set Plage = Nothing
End Sub
Bonjour,
... je trouve bizarre et flippant pcq le code marche très bien quand il n'est pas sous macro complémentaire, ...
Une piste à étudier ...
Un .xla est aussi un fichier (workbook).
With ThisWorkbook
Quel workbook ?
Ou encore For Each wk In Worksheets
Les feuilles de quel workbook ?
Le xla ou le fichier à traiter.
Il y a risque de confusion ...
ric
Merci beaucoup pour ton retour
j'ai pu résoudre mon problème
bonne fin de journée