Incompatibilité de type

Bonjour,

je suis nouveau dans l'ecriture de macro, c'est ma premiere, et quand j'essaye d'executer ce code ca me dit incompatibilité de type, quelqu'un peut m'aider please?

Sub Entréesortie()

Dim j As Integer, NbLigne As Integer, i As Integer, somme As Single

LigneTotal = 1000
j = 1

For NbLigne = 2 To LigneTotal

    If Cells(NbLigne, 11).Value <> Cells(NbLigne + 1, 11).Value Then

        For i = j + 1 To NbLigne

            If Cells(i, 19).Value = "mcour" Then
            somme = somme + Sum(Range(Cells(i, 21), Cells(i, 29)).Value) / NBVAL.Range(Cells(i, 21), Cells(i, 29))
            End If

        Next i

    j = NbLigne
    Cells(j, 31).Value = somme
    End If

Next NbLigne

End Sub

Bonjour

En indiquant quelle ligne est en erreur serait un plus

Sinon cette ligne

somme = somme + Sum(Range(Cells(i, 21), Cells(i, 29)).Value) / NBVAL.Range(Cells(i, 21), Cells(i, 29))

Il faudrait plutot

somme = somme + Application.Sum(Range(Cells(i, 21), Cells(i, 29)).Value) / Application.CountA(Range(Cells(i, 21), Cells(i, 29)))

Merci beaucoup Banzai64! c'est exactement la solution, ca marche maintenant. Tu saurais me dire a quoi sert ce application SVP?

Et tu saurais comment ecrire la chose suivante :

J'aimerais que Var = derniere colonne non vide de excel.

Var = Columns.Count ca ne marche pas... : /


J'ai un peu etoffé

For i = 1 To Columns.Count
If Cells(1, i) = "Identifiant" Then
 ColumnId = i
End If
If Cells(1, i) = "periode" Then
 ColumnP = i
End If
If Cells(1, i) = "Total annuel" Then
 ColumnDebut = i + 1
End If
Ref = i
Next i

 ColumnFin = 1
 ColumnStatut = 2
 ColumnMoyenne = 3

...

    Cells(j, ColumnStatut).Value = Statut
    Cells(j, ColumnMoyenne).Value = Somme

J'ai erreur defini par l'appliczation ou par l'objet pour l'avant derniere ligne et je pense du coup ^pour la derniere aussi

Bonjour

Je pense (pas sur à 100%) que c'est un raccourci pour (exemple) Application.WorksheetFunction.Max(......

Pour la dernière cellule non vide d'une colonne

Pour la colonne A

Dim DerLigne As Long
DerLig = Range("A" & Rows.Count).End(xlUp).Row

Pour le message d'erreur : Vérifies la valeur de J

Merci beaucoup, mais je me suis mal exprimé, en fait j'ai un fichier excel et je veux que DerCol soit égale a la dernière colonne qui contient des données.

Si c'est K la derniere colonne alors qu'il me retourne 11.

Bonjour

A tester

Dim Dercol As Integer
  Dercol = Cells(1, Columns.Count).End(xlToLeft).Column
Rechercher des sujets similaires à "incompatibilite type"