Erreur exécution '13' : incompatibilité type

titie3325 -  
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
A voir également:

2 réponses

Utilisateur anonyme
 
Je ne peux pas trop t'aider car j'ai testé le code et il fonctionne...
0
titie3325 Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   21
 
sur mon outils excel il ne fonctionne pas... comment l'as tu testé stp ?
merci
0
Utilisateur anonyme > titie3325 Messages postés 76 Date d'inscription   Statut Membre Dernière intervention  
 
Avec excel... Tu créer un bouton, tu ouvres visual basic, tu colles le code sur visual basic, tu fais clic droit sur le bouton que tu viens de créer puis affecter une macro, tu choisis la macro et tu cliques sur le bouton
0
titie3325 Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   21
 
ok ben moi mon bouton me donne l'erreur précédemment expliquée
je récupère un outil bugué donc...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour

le code postal dans la cellule n'est il pas du texte ?
tu as déclaré code_postal est nombre (long)

 Michel
0
titie3325 Messages postés 76 Date d'inscription   Statut Membre Dernière intervention   21
 
c'est bien un nombre et pas du texte
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > titie3325 Messages postés 76 Date d'inscription   Statut Membre Dernière intervention  
 
°pourtant après
If code_postal = "98000"

il faudrait voir ton classeur
<code>Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message
Dans l’attente
0