Erreur d'exécution '13': Incompatibilité de Type
Résolu
                    
        
     
             
                    SLM-BHY 
    
        
    
                    Messages postés
            
                
     
             
            29
        
            
                                    Statut
            Membre
                    
                -
                                     
Heliotte Messages postés 1561 Statut Membre -
        Heliotte Messages postés 1561 Statut Membre -
        Bonjour, 
J'ai crée une macro VBA qui permet d'attribuer une valeur (texte) dans la colonne D si il trouve une valeur prédéfini dans la colonne B.
Par exemple si dans cellule B6 j'ai "Voiture" alors dans cellule D6 j'aurai automatiquement "Loué".
Ma macro fonctionne très bien pour chaque valeur saisi, Maintenant si j'ai la même valeur à appliquer sur une plage de 10 ligne, en étendant la 1er valeur sur les 9 autres j'obtiens un débogage avec l'erreur Incompatibilité de Type.
Pouvez vous m'aider SVP.
Voici un morceau de code :
Private Sub Worksheet_Change(ByVal Target As Range)
ligne = Target.Row
col = Target.Column
If Target.Column = 2 Then
If Target = "voiture" Then
Cells(ligne, 4).Value = "loué"
End If
<config>Windows XP / Internet Explorer 7.0</config
                
            
                
    
    
    
        J'ai crée une macro VBA qui permet d'attribuer une valeur (texte) dans la colonne D si il trouve une valeur prédéfini dans la colonne B.
Par exemple si dans cellule B6 j'ai "Voiture" alors dans cellule D6 j'aurai automatiquement "Loué".
Ma macro fonctionne très bien pour chaque valeur saisi, Maintenant si j'ai la même valeur à appliquer sur une plage de 10 ligne, en étendant la 1er valeur sur les 9 autres j'obtiens un débogage avec l'erreur Incompatibilité de Type.
Pouvez vous m'aider SVP.
Voici un morceau de code :
Private Sub Worksheet_Change(ByVal Target As Range)
ligne = Target.Row
col = Target.Column
If Target.Column = 2 Then
If Target = "voiture" Then
Cells(ligne, 4).Value = "loué"
End If
<config>Windows XP / Internet Explorer 7.0</config
        A voir également:         
- Incompatibilité de type vba
- Vba incompatibilité de type - Meilleures réponses
- Erreur d'exécution 13 incompatibilité de type - Meilleures réponses
- +33 9 48 48 13 93 ✓ - Forum Mobile
- Fifa 13 - Télécharger - Jeux vidéo
- Erreur 3005 france tv - Forum TV & Vidéo
- Test redmi note 13 5g - Accueil - Téléphones
- Erreur d'execution 13 ✓ - Forum Programmation
3 réponses
                        
                            
                    Bonjour
Il y a bien un problème avec ton code
Quand tu sélectionnes une zone de plusieurs cellules, ton objet Target contient plusieurs cellules et ta comparaison If Target = "voiture" se heurte bien à un problème de type.
Il faut boucler sur toutes les cellules de Target pour ne comparer qu'une seule cellule à la fois.
    
                Il y a bien un problème avec ton code
Quand tu sélectionnes une zone de plusieurs cellules, ton objet Target contient plusieurs cellules et ta comparaison If Target = "voiture" se heurte bien à un problème de type.
Il faut boucler sur toutes les cellules de Target pour ne comparer qu'une seule cellule à la fois.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ligne As Integer, col As Integer
    '
    '
    For ligne = Target.Row To Target.Row + Target.Rows.Count - 1
      For col = Target.Column To Target.Column + Target.Columns.Count - 1
        If col = 2 Then
            If Cells(ligne, col) = "voiture" Then
                Cells(ligne, 4).Value = "loué"
            End If
        End If
      Next col
    Next ligne
End Sub
                
                 
    
    
    
    
Meilleurs voeux !
Je n'avais pas capté "sur une plage de 10 ligne" car j'ai lu en diagonale (trop pressé ce matin)
Merci pour les explications .. ça me servira de leçon !