Erreur exécution '13' : incompatibilité type
titie3325
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je débute avec le vba et je dois débuguer un outils sous excel...
Excel me donne comme erreur:
"erreur exécution '13' : incompatibilité type"
voici le code:
Sub Declaration_Ademe()
'Macro créée le 23/10/2014 par Jennifer Maupertuit
'Déclaration des variables
Dim nb_lignes As Long
Dim code_postal As Long
Dim date_fin As Date
'Sélection de la feuille de données
Sheets("Données").Activate
'Création des colonnes manquantes
'Colonne type de ligne
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1") = "Type de ligne"
'Colonnes d'adresse
Columns("E:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
'Colonne pays
Columns("I:I").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("I1") = "Pays"
'Secteur d'activité
Columns("R:R").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("R1") = "Secteur d'activité"
'Compte du nombre de lignes
nb_lignes = Range("B1").End(xlDown).Row
'Traitement des données pour application des contraintes Ademe
Application.ScreenUpdating = False
'Saisir de la date de purge
date_fin = InputBox("Veuillez saisir la date de purge de l'import", "Date de purge")
'Boucle pour chaque ligne à traiter
For i = 2 To nb_lignes
'Valeurs fixes
Cells(i, 1) = "OP" 'Type de ligne
Cells(i, 18) = "FROID" 'Secteur d'activité
'Gestion des pays
If Cells(i, 7) Like "L*" Then
Cells(i, 9) = "LU" 'Luxembourg
ElseIf Cells(i, 7) Like "S*" Then
Cells(i, 9) = "CH" 'Suisse
Else
code_postal = Cells(i, 7)
If code_postal = "98000" Then
Cells(i, 9) = "MC" 'Monaco
Else
Cells(i, 9) = "FR" 'France
End If
End If
'Suppression des retours à la ligne par des espaces dans les adresse
Cells(i, 4) = Replace(Cells(i, 4), Chr(10), " ")
Cells(i, 4) = Replace(Cells(i, 4), Chr(13), " ")
'Suppression des espaces dans les codes postaux + mise en format texte
Cells(i, 7).NumberFormat = "@" 'données au format texte
Cells(i, 7) = Replace(Cells(i, 7), " ", "")
'Mise en forme des villes
Cells(i, 8).Value = UCase(Cells(i, 8))
Cells(i, 8) = Replace(Cells(i, 8), "SAINT ", "ST ")
Cells(i, 8) = Replace(Cells(i, 8), "SAINTE ", "STE ")
Cells(i, 8) = Replace(Cells(i, 8), "'", " ")
Cells(i, 8) = Replace(Cells(i, 8), "-", " ")
Cells(i, 8) = Replace(Cells(i, 8), " ", " ")
Cells(i, 8) = Replace(Cells(i, 8), "É", "E")
Cells(i, 8) = Replace(Cells(i, 8), "È", "E")
Cells(i, 8) = Replace(Cells(i, 8), "Ë", "E")
Cells(i, 8) = Replace(Cells(i, 8), "Ê", "E")
Cells(i, 8) = Replace(Cells(i, 8), "Â", "A")
Cells(i, 8) = Replace(Cells(i, 8), "Î", "I")
Cells(i, 8) = Replace(Cells(i, 8), "Ï", "I")
Cells(i, 8) = Replace(Cells(i, 8), "S/", "SUR")
'Contrôle de la longueur de la raison sociale (=< 100)
If Len(Cells(i, 3)) > 100 Then
Cells(i, 3) = Left(Cells(i, 3), 100)
End If
'Découpage des adresses en trois colonnes
Cells(i, 6) = Mid(Cells(i, 4), 63, 31)
Cells(i, 5) = Mid(Cells(i, 4), 32, 31)
Cells(i, 4) = Mid(Cells(i, 4), 1, 31)
'Mise en forme des dates AAAAMMJJ et gestion de la date de purge
Cells(i, 19) = "20" & Mid(Cells(i, 19), 7, 2) & Mid(Cells(i, 19), 4, 2) & Mid(Cells(i, 19), 1, 2)
If Cells(i, 20) > date_fin Then
Cells(i, 20) = Format(Year(date_fin), "0000") & Format(Month(date_fin), "00") & Format(Day(date_fin), "00")
Else
Cells(i, 20) = "20" & Mid(Cells(i, 20), 7, 2) & Mid(Cells(i, 20), 4, 2) & Mid(Cells(i, 20), 1, 2)
End If
'Mise en évidence des doublons de SIRET
If Application.CountIf(Columns(2), Cells(i, 2)) > 1 Then
Cells(i, 2).Interior.ColorIndex = 3
End If
'Gestion des catégories
If Cells(i, 11) = "I" Then
If Cells(i, 16) = "V" Then
Cells(i, 11) = "I-V"
End If
ElseIf Cells(i, 16) = "V" Then
Cells(i, 11) = "V"
ElseIf Cells(i, 17) = "V-VHU" Then
Cells(i, 11) = "V-VHU"
ElseIf Cells(i, 12) = "I" Then
Cells(i, 11) = "I"
ElseIf Cells(i, 13) = "II" Then
Cells(i, 11) = "II"
ElseIf Cells(i, 14) = "III" Then
Cells(i, 11) = "III"
ElseIf Cells(i, 15) = "IV" Then
Cells(i, 11) = "IV"
End If
Next
'Suppression des colonnes superflues de catégories
Columns("L:Q").Select
Selection.Delete Shift:=xlToLeft
Cells(1, 1).Select
'Suppression des données non importées précédentes
Sheets("Non importés").Select
Cells.ClearContents
Cells.Interior.ColorIndex = 0
Cells(1, 1).Select
Application.ScreenUpdating = True
'MsgBox
Sheets("Outil").Select
MsgBox "Données traitées avec succès", vbOKOnly + vbInformation
End Sub
je vous ai souligné et mis en gras l'erreur que excel me donne...
je pensais que c'était un pb de mise en forme de colonne ou ligne mais non...
HELP please...
Merci!
Titie
Je débute avec le vba et je dois débuguer un outils sous excel...
Excel me donne comme erreur:
"erreur exécution '13' : incompatibilité type"
voici le code:
Sub Declaration_Ademe()
'Macro créée le 23/10/2014 par Jennifer Maupertuit
'Déclaration des variables
Dim nb_lignes As Long
Dim code_postal As Long
Dim date_fin As Date
'Sélection de la feuille de données
Sheets("Données").Activate
'Création des colonnes manquantes
'Colonne type de ligne
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1") = "Type de ligne"
'Colonnes d'adresse
Columns("E:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
'Colonne pays
Columns("I:I").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("I1") = "Pays"
'Secteur d'activité
Columns("R:R").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("R1") = "Secteur d'activité"
'Compte du nombre de lignes
nb_lignes = Range("B1").End(xlDown).Row
'Traitement des données pour application des contraintes Ademe
Application.ScreenUpdating = False
'Saisir de la date de purge
date_fin = InputBox("Veuillez saisir la date de purge de l'import", "Date de purge")
'Boucle pour chaque ligne à traiter
For i = 2 To nb_lignes
'Valeurs fixes
Cells(i, 1) = "OP" 'Type de ligne
Cells(i, 18) = "FROID" 'Secteur d'activité
'Gestion des pays
If Cells(i, 7) Like "L*" Then
Cells(i, 9) = "LU" 'Luxembourg
ElseIf Cells(i, 7) Like "S*" Then
Cells(i, 9) = "CH" 'Suisse
Else
code_postal = Cells(i, 7)
If code_postal = "98000" Then
Cells(i, 9) = "MC" 'Monaco
Else
Cells(i, 9) = "FR" 'France
End If
End If
'Suppression des retours à la ligne par des espaces dans les adresse
Cells(i, 4) = Replace(Cells(i, 4), Chr(10), " ")
Cells(i, 4) = Replace(Cells(i, 4), Chr(13), " ")
'Suppression des espaces dans les codes postaux + mise en format texte
Cells(i, 7).NumberFormat = "@" 'données au format texte
Cells(i, 7) = Replace(Cells(i, 7), " ", "")
'Mise en forme des villes
Cells(i, 8).Value = UCase(Cells(i, 8))
Cells(i, 8) = Replace(Cells(i, 8), "SAINT ", "ST ")
Cells(i, 8) = Replace(Cells(i, 8), "SAINTE ", "STE ")
Cells(i, 8) = Replace(Cells(i, 8), "'", " ")
Cells(i, 8) = Replace(Cells(i, 8), "-", " ")
Cells(i, 8) = Replace(Cells(i, 8), " ", " ")
Cells(i, 8) = Replace(Cells(i, 8), "É", "E")
Cells(i, 8) = Replace(Cells(i, 8), "È", "E")
Cells(i, 8) = Replace(Cells(i, 8), "Ë", "E")
Cells(i, 8) = Replace(Cells(i, 8), "Ê", "E")
Cells(i, 8) = Replace(Cells(i, 8), "Â", "A")
Cells(i, 8) = Replace(Cells(i, 8), "Î", "I")
Cells(i, 8) = Replace(Cells(i, 8), "Ï", "I")
Cells(i, 8) = Replace(Cells(i, 8), "S/", "SUR")
'Contrôle de la longueur de la raison sociale (=< 100)
If Len(Cells(i, 3)) > 100 Then
Cells(i, 3) = Left(Cells(i, 3), 100)
End If
'Découpage des adresses en trois colonnes
Cells(i, 6) = Mid(Cells(i, 4), 63, 31)
Cells(i, 5) = Mid(Cells(i, 4), 32, 31)
Cells(i, 4) = Mid(Cells(i, 4), 1, 31)
'Mise en forme des dates AAAAMMJJ et gestion de la date de purge
Cells(i, 19) = "20" & Mid(Cells(i, 19), 7, 2) & Mid(Cells(i, 19), 4, 2) & Mid(Cells(i, 19), 1, 2)
If Cells(i, 20) > date_fin Then
Cells(i, 20) = Format(Year(date_fin), "0000") & Format(Month(date_fin), "00") & Format(Day(date_fin), "00")
Else
Cells(i, 20) = "20" & Mid(Cells(i, 20), 7, 2) & Mid(Cells(i, 20), 4, 2) & Mid(Cells(i, 20), 1, 2)
End If
'Mise en évidence des doublons de SIRET
If Application.CountIf(Columns(2), Cells(i, 2)) > 1 Then
Cells(i, 2).Interior.ColorIndex = 3
End If
'Gestion des catégories
If Cells(i, 11) = "I" Then
If Cells(i, 16) = "V" Then
Cells(i, 11) = "I-V"
End If
ElseIf Cells(i, 16) = "V" Then
Cells(i, 11) = "V"
ElseIf Cells(i, 17) = "V-VHU" Then
Cells(i, 11) = "V-VHU"
ElseIf Cells(i, 12) = "I" Then
Cells(i, 11) = "I"
ElseIf Cells(i, 13) = "II" Then
Cells(i, 11) = "II"
ElseIf Cells(i, 14) = "III" Then
Cells(i, 11) = "III"
ElseIf Cells(i, 15) = "IV" Then
Cells(i, 11) = "IV"
End If
Next
'Suppression des colonnes superflues de catégories
Columns("L:Q").Select
Selection.Delete Shift:=xlToLeft
Cells(1, 1).Select
'Suppression des données non importées précédentes
Sheets("Non importés").Select
Cells.ClearContents
Cells.Interior.ColorIndex = 0
Cells(1, 1).Select
Application.ScreenUpdating = True
'MsgBox
Sheets("Outil").Select
MsgBox "Données traitées avec succès", vbOKOnly + vbInformation
End Sub
je vous ai souligné et mis en gras l'erreur que excel me donne...
je pensais que c'était un pb de mise en forme de colonne ou ligne mais non...
HELP please...
Merci!
Titie
A voir également:
- Erreur exécution '13' : incompatibilité type
- Fifa 13 - Télécharger - Jeux vidéo
- Test redmi note 13 5g - Accueil - Téléphones
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
2 réponses
bonjour
le code postal dans la cellule n'est il pas du texte ?
tu as déclaré code_postal est nombre (long)
Michel
le code postal dans la cellule n'est il pas du texte ?
tu as déclaré code_postal est nombre (long)
Michel
merci
je récupère un outil bugué donc...