Incompatibilité de type

Bonjour, VBA m'affiche erreur incompatibilité de type quand j'ai ajouté ces lignes de codes à mon code de base, je précise que les variables comptage et nombre_poly sont définies avant, je les ai rajoutées en dessous pour plus de clarté. Je pense que l'erreur vient du fait qu'il y ait une virgule à la place d'un point dans mes données, j'ai pourtant ajouté une macro pour remplacer cela ...

Peut-être verrez vous mon erreur !

Merci !

9polygones.xlsm (21.49 Ko)
Columns("E:N").Select
    Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Dim ratio As Variant
For j = 1 To comptage
    ratio = 0
    For i = 1 To nombre_poly
        ratio = ratio + (Worksheets("Aire et Ratio").Cells(i + 1, j + 4) / Worksheets("Aire et Ratio").Cells(i + 1, j + 1)) * Worksheets("Aire et Ratio").Cells(i + 1, j + 3)
     Next
     Worksheets("Aire et Ratio").Cells(comptage, j + 4) = ratio
Next
' mi
comptage = Application.WorksheetFunction.CountA(Worksheets("Données").Range("A:A")) - 1 'nombre de section présentes dans le cercle découpé
nombre_poly = Application.WorksheetFunction.CountA(Worksheets("Aire et Ratio").Range("B:B")) - 2

bonjour,

peux-tu mettre tout ton code (y compris ton ajout) dans un fichier dans lequel on peut reproduire l'erreur ?

Bonjour, pardon effectivement je me suis trompée de fichier !

Bonjour Emma

Commencez par l'utilisation de "Option Explicité" en début de module et par variabiliser vos codes

Ensuite l'utilisation des objets n'a pas besoin de select.
Voici le code qui n'affiche pas d'erreur de mon côté

Sub Macro2()
  Dim Comptage
  Dim Ratio As Variant
  Dim J As Long, I As Long

  With Worksheets("Aire et Ratio")
    .Columns("E:N").Replace What:=",", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    For J = 1 To Comptage
      Ratio = 0
      For I = 1 To nombre_poly
        Ratio = Ratio + (.Cells(I + 1, J + 4) / .Cells(I + 1, J + 1)) * .Cells(I + 1, J + 3)
      Next I
     .Cells(Comptage, J + 4) = Ratio
    Next J
    Comptage = Application.WorksheetFunction.CountA(Worksheets("Données").Range("A:A")) - 1 'nombre de section présentes dans le cercle découpé
    nombre_poly = Application.WorksheetFunction.CountA(.Range("B:B")) - 2
  End With
End Sub

A+

Edit : doublon

Merci pour votre réponse !

Votre code m'affiche toujours l'erreur d'incompatibilité à la ligne

Ratio = Ratio + (.Cells(I + 1, J + 4) / .Cells(I + 1, J + 1)) * .Cells(I + 1, J + 3)

Edit : Désolée pour la non-optimisation du code, je débute en VBA

Re,

Vous avez donc une erreur dans votre feuille qui entraine cette erreur VBA

A+

Le fichier est présent dans mon message plus haut, je vous remets

Je pense que cela vient du fait que certaines virgules de mes données de la feuille "aire et ratio" ne se convertissent pas en point

Re,

Je voulais le dernier fichier pour savoir ce que vous aviez fait et effectivement, ce n'est pas bon

Le code est à copier coller dans un module tel quel, si vous ne respectez pas ce qu'on vous donne ne soyez pas étonnée

Bonne chance

Mais je l'ai copié collé, il est dans module 1

Mais je l'ai copié collé, il est dans module 1

En tout cas pas dans le dernier fichier que tu as mis.

Ah mince, je réenregistre le fichier et je vous le renvoie ! désolée du malentendu

Re,

Perso, comme il n'y a aucun effort de votre part, je vais laisser tomber

C'est quoi ce code qui est toujours à cet emplacement

image

Commencez par apprendre les bases de VBA, ce sera mieux

On ne met PAS de MODULE dans une feuille, que des évènements

Ceci dit, vous aurez un message d'erreur "division par zéro", puisque certaines cellules sont vides

Bonne chance

Bonsoir,

voici une version corrigée selon les indications de BrunoM45, que je salue.

  • suppression des procedures dans le module de la feuille aire et ratio
  • suppression des modules inutiles
  • consolidation et correction des procédures comptage et cotation_gravité dans le module module 1.
  • gestion de l'erreur division par zero qui peut survenir dépendant des données dans la feuille aire et ratio.
  • pas de problème d'incompatibilité détecté avec cette version sur les données présentes dans le fichier que tu as mis
Rechercher des sujets similaires à "incompatibilite type"