VBA workbook caché

Hello tout le monde,

J'ai un gros soucis, j'utilise fichier depuis plusieurs mois et je n'ai jamais eu de problème avec depuis qu'il est bien en place.

Sauf qu'aujourd'hui à ma grande surprise, j'ai un message d'erreur et je ne comprends pas pourquoi.

Le message est le suivant :

Erreur d'exécution 13

Incompatibilité de type

La ligne suivante est surlignée :

Sub DLUO()
Dim Réf As String
Dim x As Long, y As Long, z As Long
Range("DLUO").MergeArea.ClearContents
Réf = Sheets("TRAME").Cells(14, 2) & Sheets("TRAME").Cells(13, 2) & Sheets("TRAME").Cells(15, 2)
For x = 5 To Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Range("A" & Rows.Count).End(xlUp).Row
  [Surligner] If Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, 4) & Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, 6) & Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, 7) = Réf Then[/Surligner]
         For y = 15 To 15
        If Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, y).Value <> "" Then
                            Sheets("TRAME").Range("DLUO") = Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, y)
                                               End If
                                               Next
                                               End If
                                               Next

End Sub

et ça me dit que le workbook est caché, je ne sais pas pourquoi ...

Quelqu'un a une idée ?? c'est vraiment important

Bonjour,

For x = 5 To ??? Workbooks("Base Mère.xlsm")

il manquerait pas un chiffre là comme pour y ?

For y = 15 To 15......If Workbooks("Base Mère.xlsm").Work

euh non je luis dis d'aller jusqu'en bas et pour toutes les colonnes.

Range("A" & Rows.Count).End(xlUp).Row

Et ma macro fonctionnait très bien avant ...

C'est la ligne juste en dessous qui est surlignée

Merci

Bonjour,

Le fichier ("Base Mère.xlsm") n'aurait-il pas été renommé ou déplacé ??

Les feuilles n'auraient-elles pas été renommées ?

Les champs nommés n'auraient-ils pas été renommés ou supprimés ?

ric

Bonjour,

non justement rien n'a été déplacé ni renommé ... (c'est ce que je me suis demandé directement)

Je viens de tester un code dans un nouveau classeur, qui va chercher une info dans cette fameuse base mère.

Je constate que lorsque je fais le code suivant tout va bien :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("liste_origine")) Is Nothing Then Call DLUO
End Sub

'Sub DLUO()
'Dim Réf As String
'Dim x As Long, y As Long, z As Long
'Range("DLUO").ClearContents
'Réf = Sheets("Feuil1").Cells(14, 2) & Sheets("Feuil1").Cells(13, 2)
'For x = 5 To Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Range("A" & Rows.Count).End(xlUp).Row
 '   If Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, 6) & Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, 4) = Réf Then
 '        For y = 15 To 15
  '      If Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, y).Value <> "" Then
   '                         Sheets("Feuil1").Range("DLUO") = Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, y)
    '                                           End If
     '                                          Next
      '                                         End If
       '                                        Next
'End Sub

Par contre dès que je rajoute la prise en compte d'une colonne supplémentaire, rien ne va plus, le message d'erreur revient :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("liste_origine")) Is Nothing Then Call DLUO
End Sub

Sub DLUO()
Dim Réf As String
Dim x As Long, y As Long, z As Long
Range("DLUO").ClearContents
Réf = Sheets("Feuil1").Cells(14, 2) & Sheets("Feuil1").Cells(13, 2) & Sheets("Feuil1").Cells(15, 2)
For x = 5 To Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Range("A" & Rows.Count).End(xlUp).Row
    If Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, 6) & Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, 4) & Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, 7) = Réf Then
         For y = 15 To 15
        If Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, y).Value <> "" Then
                            Sheets("Feuil1").Range("DLUO") = Workbooks("Base Mère.xlsm").Worksheets("Base Qualité").Cells(x, y)
                                               End If
                                               Next
                                               End If
                                               Next

End Sub

Alors depuis pas longtemps, on a eu un soucis avec cette base, certaines cellules se mettent automatiquement en format date (et personne ne sait pourquoi...)

et justement la colonne dont j'ai besoin a été impactée. Sauf que quand je remets tout au format texte, ça ne fonctionne toujours pas. Et les cellules finissent par se remettre au format date.

Pensez-vous que c'est lié ?

Avez-vous des pistes pour remédier à ça ?

En vous remerciant !

Clem

Bonjour à tous,

Un peu de remise à niveau sur l' indentation et la simplification ne fera pas de mal je pense, même si sa ne résout pas le problème

Sub DLUO()
Dim Réf As String
Dim x As Long, y As Long, z As Long
Dim ws1
Dim ws2

    Set ws1 = Sheets("Feuil1")
    Set ws2 = Workbooks("Base Mère.xlsm").Worksheets("Base Qualité")

    Range("DLUO").ClearContents
    Réf = ws1.Cells(14, 2) & ws1.Cells(13, 2) & ws1.Cells(15, 2)

    For x = 5 To ws2.Range("A" & Rows.Count).End(xlUp).Row
        If ws2.Cells(x, 6) & ws2.Cells(x, 4) & ws2.Cells(x, 7) = Réf Then
             For y = 15 To 15
                If ws2.Cells(x, y).Value <> "" Then
                    ws1.Range("DLUO") = ws2.Cells(x, y)
                End If
            Next y
        End If
    Next x

    Set ws1 = Nothing
    Set ws2 = Nothing

End Sub

Tout est bon à prendre et me sera utile

Je vais tester on ne sait jamais même si je pense que le problème vient de la base

Merci

Essaye d’exécuter le code en Pas à Pas ( F8 dans le code ) afin de voir à quel moment intervient l'erreur et sur qu'elle ligne

L'erreur intervient à ce moment :

Clem

capture
Rechercher des sujets similaires à "vba workbook cache"