Erreur d'execution 13 incompatibilité de type

tarikabir

XLDnaute Nouveau
Mon programme consiste a rechercher une liste présente dans Feuil1 dans Feuil2 ou Feuil3

en cas de succès ajouter un commentaire dans la colonne qui jouxte la cellule, et cela pour chaque "succès" en Feuil2(INT JOUR) ou Feuil3(INT NUIT)

Le programme fonctionne normalement quand le range de destination de la recherche comporte 2 colonnes.

Mais affiche Erreur d'execution 13 incompatibilité de type quand le range de destination contient + de 2 colonnes

NB avec un range a + de 2 colonnes le programme ne fonctionne qu'1 fois sauf si la recherche se fait sur une Feuil différente de la première recherche.

Il y a une liste déroulante à cocher en feuil1 et ensuite lancer le programme => Rapport

Merci beaucoup pour votre aide

Tarik
 

Pièces jointes

  • planning-med.xlsm
    57.5 KB · Affichages: 18

Dudu2

XLDnaute Barbatruc
Bonjour,
Ça se plante parce que Sheets(Fichier).Range("K3").End(xlDown) n'est pas un nombre.

1607535730576.png


1607535817519.png
 

soan

XLDnaute Barbatruc
Inactif
Bonjour,

attention : il y a une erreur sur la valeur de la variable Fichier,
à cause de Else: ➯ « sinon rien du tout » !

1) après les lignes de Dim, remplacer tout ça :
VB:
    Sheets("Feuil1").Range("L1:Z150").Clear
   
    N = Sheets("Feuil1").Range("D5")
    Medecin = Sheets("Feuil1").Range("E5")
    Caserne = Sheets("Feuil1").Range("C5")
    INTERV = Sheets("Feuil1").Range("B5")
   
    Sheets("Feuil1").Range("D5").Value = N 'inutile car redondant
   
   
    If Sheets("feuil1").Range("B5") = "ITJ" Then
    Fichier = "INT JOUR"
        Else: Fichier = "INT NUIT"
    End If
par ceci :
Code:
    With Worksheets("Feuil1")
      .Range("L1:Z150").Clear
      With .[B5]
        INTERV = .Value
        Caserne = .Offset(, 1)
        N = .Offset(, 2)
        Medecin = .Offset(, 3)
      End With
    End With
   
    Fichier = "INT NUIT"
    If INTERV = "ITJ" Then Mid$(Fichier, 5, 4) = "JOUR"

2) utiliser cette instruction :

DerligneC = Worksheets(Fichier).[K3].End(xlDown).Row + 1

il ne faut pas utiliser .Rows mais .Row !

soan
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 405
Membres
102 883
dernier inscrit
jameseyz