Comment identifier la variable qui gènére le message erreur d’exécution 13

Bonjour à tous, j'utilise un fichier avec un userform qui s'ouvre à l'ouverture du fichier. Mais une erreur d’exécution 13 "incompatibilité de type" bloque l'ouverture de ce fichier. Y aurait il un moyen d'identifier la variable qui pose problème ?

Bonjour Luc_Vba

L'instruction qui cause le message d'erreur sera identifié par une exécution en pas à pas (F8) en passant dans VBE (Alt F12).

Avant tout, passer tous les modules en ajoutant en entête l'instruction "Option Explicit" et demander la compilation

Que signifie "Demander la compilation?

Je viens d'ajouter "Option Explicit" à toutes les procédures et un nouveau message apparait "erreur de compilation: instruction incorrecte dans une procédure"

Après différents essais, le même fichier s'ouvre de temps en temps sans que je n'arrive à savoir pourquoi. Si j'ouvre un autre fichier excel, mon fichier s'ouvre et présente l'userform comme prévu. Est ce que vous pouvez m'aider ?

Bonsoir,

je pense que beaucoup d'intervenants peuvent vous aider ! Mais aidez nous également, par la mise à disposition du fichier pour commencer, cela sera un très grand pas pour la résolution du problème me semble t il...

@ bientôt

LouReeD

Mon fichier est volumineux 6Mo et je ne sais pas comment le mettre à disposition.

incompatibilité de type est affiché lorsque l'on veut faire une purée de pomme de terre avec des cerises !

Par exemple :

Sub test()
    Dim LRD As Integer
    LRD = "LouReeD"
End Sub

Ici on identifie la variable LRD comme étant un chiffre entier allant de -32000 à +32000 (environ)
Ensuite le code essaie de lui donner la valeur alphabétique "LouReeD", cela engendre une erreur de type : on ne mélange pas les String avec les Integer.

Maintenant votre fichier ouvre un USF et provoque l'erreur, essayez de nous communiquer le code du "Initialize" du USF entre les balises de codes disponibles </> et déjà on verra s'il y a une incohérence de ce "type".

Vous pouvez aussi supprimer toutes les feuilles qui ne jouent pas "à l'ouverture du USF", supprimer les différentes photo ou autre sur celles qui restes etc...
en somme faire de façon à réduire la taille du fichier...

@ bientôt

LouReeD

Le problème est que le fichier comportes plusieurs dizaines de variables, et je n'arrive pas à identifier celle qui pose problème. Je viens de supprimer plusieurs feuilles et le fichier est maintenant à 3 Mo.

Pour que le USF s'ouvre à l'ouverture du fichier la macro est :

Public Sub Workbook_Open()
UserFormSaisie.Show 'présentation du formulaire à l'ouverture du fichier Vélo carnet d'entrainement
End Sub

Puis cela enchaine avec :

Private Sub UserForm_Initialize()
Sheets("Donnees KM").Select
Range("A2").Select
If ActiveCell.Value <> "" Then
GoTo Apres
End If
UserFormSaisie.Show
Apres:

RecupereDonnees 'a l ouverture du fichier renvoi vers Private Sub RecupereDonnees()
End Sub

N'oubliez pas d'utiliser les balises de code disponibles lors de l'édition du message il est représenté par </>

Ensuite RecupereDonnees, son code ?

@ bientôt

LouReeD

NB : voir les MP

Public Sub RecupereDonnees()

Dim Mois As Integer, FCMax%, FCRepos%, Zone1max%, Zone1mini%, Zone2Mini%, Zone2Max%, Zone3Mini%, Zone3Max%, Zone4Mini%, Zone4Max%, Zone5Mini%, Zone5Max%, TotalJanvier%, TotalFevrier%, TotalMars%, TotalAvril%, TotalMai%, TotalJuin%, TotalJuillet%, TotalAout%, TotalSept%, TotalOct%, TotalNov%, TotalDec%, Cardio%

Dim DerKM% 'DerKMRte%, DerKMVTT%, DerKMHT%

'Dim ANRte%, ANVTT%, ANHT%, Total%

Dim Total As Integer

Dim Rte As Double, VTT#, HT#, Poids#, DerKMH#

Dim RienCardio As Long, RienFCRepos&, RienKG&, RienFCMax&, RienDerKMH&

Dim DerType As String

Dim DerDate As Date

Dim NbreAn As Integer

'Dim KMRteDebut As Long, KMVTTDebut&, KMHTDebut&

'Dim TotalKMDebut&

'Dim DateDebut, DateFin As Date

Dim DateDebut, DateFin As Variant

Dim PlageKMRte, PlageKMVTT, PlageKMHT, PlageKM As Range

Dim Km_Pneu_Av_Rte&, Km_Pneu_Ar_Rte&, Km_Pneu_Av_VTT&, Km_Pneu_Ar_VTT&, Km_Chaine_Rte&, Km_Chaine_VTT&

Dim Km_Cassette_Rte&, Km_Cassette_VTT&, KM_Cales_Rte&, Km_Cale_VTT&, Km_Frein_Rte&, Km_Frein_VTT&

Dim Ligne_Km_Rte&, Ligne_Km_VTT&, Ligne&

Dim Nbre_Jours_Pile_Cptr, Nbre_Jours_Liquide_Preventif_Rte, Nbre_Jours_Liquide_Preventif_VTT As Variant

Dim Nbre_Jours_Pile_Fourche, Nbre_Jours_Pile_Cardio, Nbre_Jours_Pile_Freq_Pedalage As Variant

CompileDonnees ' renvoi vers Sub CompileDonnees()

'--- Total Km An et Mois --------------------------------------------------------------------------------

Mois = Month(Date)

'Mois = 12

With FRecap

Total = .Cells(1, 3) + .Cells(1, 7) + .Cells(1, 11) 'Total km AN rte+vtt+ht

Rte = .Cells(Mois + 1, 3) ' total mois km rte

VTT = .Cells(Mois + 1, 7) 'total mois km rte VTT

HT = .Cells(Mois + 1, 11) 'total mois km rte HT

TotalJanvier = .Cells(2, 3) + .Cells(2, 7) + .Cells(2, 11) 'total km rte+vtt+ht du mois de janvier

TotalFevrier = .Cells(3, 3) + .Cells(3, 7) + .Cells(3, 11)

TotalMars = .Cells(4, 3) + .Cells(4, 7) + .Cells(4, 11)

TotalAvril = .Cells(5, 3) + .Cells(5, 7) + .Cells(5, 11)

TotalMai = .Cells(6, 3) + .Cells(6, 7) + .Cells(6, 11)

TotalJuin = .Cells(7, 3) + .Cells(7, 7) + .Cells(7, 11)

TotalJuillet = .Cells(8, 3) + .Cells(8, 7) + .Cells(8, 11)

TotalAout = .Cells(9, 3) + .Cells(9, 7) + .Cells(9, 11)

TotalSept = .Cells(10, 3) + .Cells(10, 7) + .Cells(10, 11)

TotalOct = .Cells(11, 3) + .Cells(11, 7) + .Cells(11, 11)

TotalNov = .Cells(12, 3) + .Cells(12, 7) + .Cells(12, 11)

TotalDec = .Cells(13, 3) + .Cells(13, 7) + .Cells(13, 11)

ANRte = .Cells(1, 3)

ANVTT = .Cells(1, 7)

ANHT = .Cells(1, 11)

End With

'--- RECUP DERNIERE SORTIE ---------------------------------------------------------------------------

Sheets("donnees KM").Select 'passe à feuille donnees

Dim DerKMHRte, DerKMHVTT, DerKMHHT As Double

Dim DerKMRte, DerKMRVTT, DerKMHT As Integer

Dim DerKMVTT As Integer

[A1].End(4).Select 'selection de la derniere ligne non vide colonne A

While ActiveCell.Offset(0, 1).Value = 0 And ActiveCell.Offset(0, 3).Value = 0 And ActiveCell.Offset(0, 5).Value = 0

ActiveCell.Offset(-1, 0).Select

Wend

If ActiveCell.Row = 1 Then 'si 1er ligne alors

MsgBox ("Aucune sortie n'est enregistrée")

GoTo Apres_DerSortie 'passe cette partie

End If

DerKMHRte = ActiveCell.Offset(0, 2).Value 'affecte valeur à variable

DerKMHVTT = ActiveCell.Offset(0, 4).Value

DerKMHHT = ActiveCell.Offset(0, 6).Value

DerDate = ActiveCell.Value

DerKMRte = ActiveCell.Offset(0, 1).Value

DerKMRVTT = ActiveCell.Offset(0, 3).Value

DerKMHT = ActiveCell.Offset(0, 5).Value

If ActiveCell.Offset(0, 1).Value <> "" And ActiveCell.Offset(0, 3).Value <> "" And ActiveCell.Offset(0, 5).Value <> "" Then

DerType = "Route & VTT & HT"

ElseIf ActiveCell.Offset(0, 1).Value <> "" And ActiveCell.Offset(0, 3).Value <> "" Then

DerType = "Route & VTT"

ElseIf ActiveCell.Offset(0, 1).Value <> "" And ActiveCell.Offset(0, 5).Value <> "" Then

DerType = "Route & HT"

ElseIf ActiveCell.Offset(0, 3).Value <> "" And ActiveCell.Offset(0, 5).Value <> "" Then

DerType = "VTT & HT"

ElseIf ActiveCell.Offset(0, 5).Value <> "" Then

DerType = "HT ou Piste"

ElseIf ActiveCell.Offset(0, 3).Value <> "" Then

DerType = "VTT"

Else

DerType = "Route"

End If

Apres_DerSortie: 'situe macro si colonne A = vide

'Recup Poids moyen -----------------------------

Nbre_Km_mois_Heures_Fcmoyen_Poids_Moyen

Poids_Moy_Janvier = Poids_Moy_Janvier

Poids_Moy_Fevrier = Poids_Moy_Fevrier

Poids_Moy_Mars = Poids_Moy_Mars

Poids_Moy_Avril = Poids_Moy_Avril

Poids_Moy_Mai = Poids_Moy_Mai

Poids_Moy_Juin = Poids_Moy_Juin

Poids_Moy_Juillet = Poids_Moy_Juillet

Poids_Moy_Aout = Poids_Moy_Aout

Poids_Moy_Septembre = Poids_Moy_Septembre

Poids_Moy_Octobre = Poids_Moy_Octobre

Poids_Moy_Novembre = Poids_Moy_Novembre

Poids_Moy_Decembre = Poids_Moy_Decembre

Fc_Moy_Janvier = Fc_Moy_Janvier

Fc_Moy_Fevrier = Fc_Moy_Fevrier

Fc_Moy_Mars = Fc_Moy_Mars

Fc_Moy_Avril = Fc_Moy_Avril

Fc_Moy_Mai = Fc_Moy_Mai

Fc_Moy_Juin = Fc_Moy_Juin

Fc_Moy_Juillet = Fc_Moy_Juillet

Fc_Moy_Aout = Fc_Moy_Aout

Fc_Moy_Septembre = Fc_Moy_Septembre

Fc_Moy_Octobre = Fc_Moy_Octobre

Fc_Moy_Novembre = Fc_Moy_Novembre

Fc_Moy_Decembre = Fc_Moy_Decembre

H_du_Mois_Janvier = H_du_Mois_Janvier

H_du_Mois_Fevrier = H_du_Mois_Fevrier

H_du_Mois_Mars = H_du_Mois_Mars

H_du_Mois_Avril = H_du_Mois_Avril

H_du_Mois_Mai = H_du_Mois_Mai

H_du_Mois_Juin = H_du_Mois_Juin

H_du_Mois_Juillet = H_du_Mois_Juillet

H_du_Mois_Aout = H_du_Mois_Aout

H_du_Mois_Septembre = H_du_Mois_Septembre

H_du_Mois_Octobre = H_du_Mois_Octobre

H_du_Mois_Novembre = H_du_Mois_Novembre

H_du_Mois_Decembre = H_du_Mois_Decembre

Km_An_Precedent = Km_An_Precedent

Km_Moyen_Mois_Année_Precedente = Km_Moyen_Mois_Année_Precedente

H_du_Mois_Janvier = H_du_Mois_Janvier

'RECUP FCRepos ----------------------------------

'Sheets("donnees KM").Select

'[W65536].End(3).Select 'remonte jusqu'à la 1ere ligne non vide

'While ActiveCell.Value = 0 And ActiveCell.Row > 2

'ActiveCell.Offset(-1, 0).Select

'Wend

'If ActiveCell.Row = 1 Then

'GoTo Apres_FCRepos

'End If

'FCRepos = ActiveCell.Value

'Apres_FCRepos:

'RECUP Poids -------------------------------------

'[T65536].End(3).Select 'remonte jusqu'à la 1ere ligne non vide

'While ActiveCell.Value = 0 And ActiveCell.Row > 2

'ActiveCell.Offset(-1, 0).Select

'Wend

'If ActiveCell.Row = 1 Then

'GoTo Apres_FCRepos

'End If

'Poids = ActiveCell.Value ' affecte à variable poids trouvé

'Apres_KG:

'Recup FC MAX Sortie ------------------------

[R65536].End(3).Select 'remonte jusqu'à la 1ere ligne non vide

While ActiveCell.Value = 0 And ActiveCell.Row > 2

ActiveCell.Offset(-1, 0).Select

Wend

If ActiveCell.Row = 1 Then

GoTo Apres_FCMax

End If

FCMax = ActiveCell.Value ' affecte à variable poids trouvé

Apres_FCMax:

'RECUP REGLAGE PULS MAX CARDIO ------------------------------

[X65536].End(3).Select 'remonte jusqu'à la 1ere ligne non vide

While ActiveCell.Value = 0 And ActiveCell.Row > 2

ActiveCell.Offset(-1, 0).Select

Wend

If ActiveCell.Row = 1 Then

GoTo Apres_Cardio

End If

Cardio = ActiveCell.Value ' affecte à variable poids trouvé

Apres_Cardio:

'--- Récup KM pneu AV route été -----------------------------------------

Dim Der_KM_Pneu_Rte_Ete_Av As Integer

[BI65000].End(3).Select

Der_KM_Pneu_Rte_Ete_Av = ActiveCell.Value

'--- Récup KM pneu Arrière route été -----------------------------------------

Dim Der_KM_Pneu_Rte_Ete_Arr As Integer

[BJ65000].End(3).Select

'Der_KM_Pneu_Rte_Ete_Arr = ActiveCell.Value

Der_KM_Pneu_Rte_Ete_Arr = ActiveCell.Value

'--- Récup KM pneu AV route hiver -----------------------------------------

Dim Der_KM_Pneu_Rte_Hiver_Av As Integer

[BT65000].End(3).Select

Der_KM_Pneu_Rte_Hiver_Av = ActiveCell.Value

'--- Récup KM pneu Arrière route hiver -----------------------------------------

Dim Der_KM_Pneu_Rte_Hiver_Arr As Integer

[BU65000].End(3).Select

Der_KM_Pneu_Rte_Hiver_Arr = ActiveCell.Value

'--- Recup Km chaine route --------------------------------

Dim Der_Km_Chaine_Rte As Integer

[BN65000].End(3).Select

Der_Km_Chaine_Rte = ActiveCell.Value

'--- Recup Km casette route été -------------------------------

Dim Der_Km_Cassette_Rte_Ete As Integer

[BL65000].End(3).Select

Der_Km_Cassette_Rte_Ete = ActiveCell.Value

'--- Recup Km casette route Hiver -------------------------------

Dim Der_Km_Cassette_Rte_Hiver As Integer

[BV65000].End(3).Select

Der_Km_Cassette_Rte_Hiver = ActiveCell.Value

'--- Recup Km casette HT -------------------------------

Dim Der_Km_Cassette_HT As Integer

[BH65000].End(3).Select

Der_Km_Cassette_HT = ActiveCell.Value

'--- Récup Km plaquettes Frein Avant route ----------------------

Dim Der_Km_Plaquette_Av_Rte As Integer

[BO65000].End(3).Select

Der_Km_Plaquette_Av_Rte = ActiveCell.Value

'--- Récup Km plaquettes Frein Arrière route ----------------------

Dim Der_Km_Plaquette_Arr_Rte As Integer

[BP65000].End(3).Select

Der_Km_Plaquette_Arr_Rte = ActiveCell.Value

'--- Recup Km cales route Eté ---------------------------------

Dim Der_Km_Cales_Rte_Ete As Integer

[BM65000].End(3).Select

Der_Km_Cales_Rte_Ete = ActiveCell.Value

'--- Recup Km cales route Hiver ---------------------------------

Dim Der_Km_Cales_Rte_Hiver As Integer

[BW65000].End(3).Select

Der_Km_Cales_Rte_Hiver = ActiveCell.Value

'--- Km_Rte_batterie Chgt_Vitesses ----------------------------------

Dim Der_Km_Chgt_Vitesses As Integer

Dim Der_KmBatterie As Integer

[BQ65000].End(3).Select

Der_KmBatterie = ActiveCell.Value

'Der_Km_Chgt_Vitesses = ActiveCell.Value

If Der_KmBatterie > 1200 Then

MsgBox ("Vérifier batterie vélo")

End If

'--- Nbre jours Pile Freq Pédalage Rte ------------------------

Dim Nbre_Jours_Pile_Freq_Pedalage_Rte As Variant

[BR65000].End(3).Select 'passe au dernier changt de pile

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

If ActiveCell.Row = 1 Then 'si remonte en ligne 1

ActiveCell.Offset(1, 0).Select

Ligne_Pile = ActiveCell.Row

Date_Début = Range("A" & Ligne_Pile).Value

End If

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Nbre_Jours_Pile_Freq_Pedalage_Rte = Round(Nbre_Jours_Pile / 365, 1) '& " ans"

PassePileFreqPedalRte:

'Der_Km_Chgt_Vitesses = ActiveCell.Value

'--- Récup Nbre jour Liquide Préventif Rte ----------------

Dim Nbre_Jours_Liquide_Prev_Rte As Variant

'[BU65000].End(3).Select

'Nbre_Jours_Liquide_Prev_Rte = ActiveCell.Value

'--- Récup Nbre jours liquide préventif Rte -------------------

[BS65000].End(3).Select

If ActiveCell.Value = "Ch_Air" Then

GoTo PasseLiqPrevRte

End If

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "Route"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo PasseLiqPrevRte

End If

Wend

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Nbre_Jours_Liquide_Preventif_Rte = Round(Nbre_Jours_Pile / 30, 1) '& " mois"

PasseLiqPrevRte:

Nbre_Jours_Liquide_Preventif_Rte = "0"

'--- Récup Km pneu Av VTT ---------------------------------

Dim Dernier_KM_VTT_Pneu_Avant As Integer

[BX65000].End(3).Select

Dernier_KM_VTT_Pneu_Avant = ActiveCell.Value

'--- Récup Km pneu Arrière VTT ---------------------------------

Dim Dernier_KM_VTT_Pneu_Arr As Integer

[BY65000].End(3).Select

Dernier_KM_VTT_Pneu_Arr = ActiveCell.Value

'--- Recup Km chaine VTT ----------------------------------

Dim Der_Km_Chaine_VTT As Integer

[BZ65000].End(3).Select

Der_Km_Chaine_VTT = ActiveCell.Value

'--- Recup Km casette VTT ---------------------------------

Dim Der_Km_Cassette_VTT As Integer

[CA65000].End(3).Select

Der_Km_Cassette_VTT = ActiveCell.Value

'--- Récup Km plaquettes Avant frein VTT ------------------------

Dim Der_Km_Plaquettes_Av_VTT As Integer

[CB65000].End(3).Select

Der_Km_Plaquettes_Av_VTT = ActiveCell.Value

'--- Récup Km plaquettes Arrière frein VTT ------------------------

Dim Der_Km_Plaquettes_Arr_VTT As Integer

[CC65000].End(3).Select

Der_Km_Plaquettes_Arr_VTT = ActiveCell.Value

'--- Recup Km cales VTT -----------------------------------

Dim Der_Km_Cales_VTT As Integer

[CD65000].End(3).Select

'Der_Km_Cales_VTT = ActiveCell.Value

'--- Récup Nbre jour Liquide Préventif VTT ----------------

Dim Nbre_Jours_Liquide_Prev_VTT As Variant

[CE65000].End(3).Select

If ActiveCell.Value = "Ch_Air" Then

GoTo Passe

End If

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "VTT"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo Passe

End If

Wend

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Nbre_Jours_Liquide_Prev_VTT = Round(Nbre_Jours_Pile / 30, 1) '& " mois"

Passe:

'--- Récup Nbre jours pile Freq Pédalage VTT ---------------------------

Dim Der_Nbre_Jours_Pile_Freq_Pedal_VTT As Variant

[CF65000].End(3).Select

Der_Nbre_Jours_Pile_Freq_Pedal_VTT = "0"

'Nbre_Jours_Pile_Cptr = Nbre_Jours_Pile

'Nbre_Jours_Pile_Cptr = Round(Nbre_Jours_Pile / 365, 1) '& " ans"

'--- Récup Nbre jour pile Cptr-Gps -----------------------

Dim Der_Nbre_Jours_Pile_Cptr_GPS As Long

[CG65000].End(3).Select

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "X"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo PasseCptr_GPS

End If

Wend

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Der_Nbre_Jours_Pile_Cptr_GPS = Round(Nbre_Jours_Pile / 365, 1) '& " ans"

PasseCptr_GPS:

'--- Récup Nbre jours pile ceinture cardio ----------------

[CH65000].End(3).Select

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "X"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo PasseCardio

End If

Wend

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Nbre_Jours_Pile_Cardio = Round(Nbre_Jours_Pile / 365, 1) '& " ans"

PasseCardio:

'--- Nbre mois graissage roulements céramiques roues d'été ----------------

Dim Ceram As Integer

Dim Ligne_Ceram As Integer

Dim Nbre_Mois_Ceram As Integer

[BK65000].End(3).Select

Ligne_Ceram = 0

Nbre_Mois_Ceram = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "X"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo PasseCeram

End If

Wend

Ligne_Ceram = ActiveCell.Row

Cells(Ligne_Ceram, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Mois_Ceram = DateDiff("M", Date_Début, Date_Fin)

'Nbre_Mois_Ceram = Round(Nbre_Jours_Pile / 30, 1) '& " mois"

If Nbre_Mois_Ceram > 5 Then

TextBoxroulemtceram.BackColor = vbRed 'passe en rouge apres 5 mois

End If

PasseCeram:

'----------------------------------------------------------------------------------------

'AFFECTE AU FORMULAIRE LA VALEUR DES VARIABLES

TextBoxJanvierKm = Format(TotalJanvier, "#,##0") 'affecte la valeur km rte+vtt+ht de janvier

TextBoxFevrierKm = Format(TotalFevrier, "#,##0")

TextBoxMarsKm = Format(TotalMars, "#,##0")

TextBoxAvrilKm = Format(TotalAvril, "#,##0")

TextBoxMaiKm = Format(TotalMai, "#,##0")

TextBoxJuinKm = Format(TotalJuin, "#,##0")

TextBoxJuilletKm = Format(TotalJuillet, "#,##0")

TextBoxAoutKm = Format(TotalAout, "#,##0")

TextBoxSeptembreKm = Format(TotalSept, "#,##0")

TextBoxOctobreKm = Format(TotalOct, "#,##0")

TextBoxNovembreKm = Format(TotalNov, "#,##0")

TextBoxDecembreKm = Format(TotalDec, "#,##0")

TextBoxJanvierPoids = Poids_Moy_Janvier

TextBoxFevrierPoids = Poids_Moy_Fevrier

TextBoxMarsPoids = Poids_Moy_Mars

TextBoxAvrilPoids = Poids_Moy_Avril

TextBoxMaiPoids = Poids_Moy_Mai

TextBoxJuinPoids = Poids_Moy_Juin

TextBoxJuilletPoids = Poids_Moy_Juillet

TextBoxAoutPoids = Poids_Moy_Aout

TextBoxSeptembrePoids = Poids_Moy_Septembre

TextBoxOctobrePoids = Poids_Moy_Octobre

TextBoxNovembrePoids = Poids_Moy_Novembre

TextBoxDecembrePoids = Poids_Moy_Decembre

TextBoxJanvierFc = Fc_Moy_Janvier

TextBoxFevrierFc = Fc_Moy_Fevrier

TextBoxMarsFc = Fc_Moy_Mars

TextBoxAvrilFc = Fc_Moy_Avril

TextBoxMaiFc = Fc_Moy_Mai

TextBoxJuinFc = Fc_Moy_Juin

TextBoxJuilletFc = Fc_Moy_Juillet

TextBoxAoutFc = Fc_Moy_Aout

TextBoxSeptembreFc = Fc_Moy_Septembre

TextBoxOctobreFc = Fc_Moy_Octobre

TextBoxNovembreFc = Fc_Moy_Novembre

TextBoxDecembreFc = Fc_Moy_Decembre

TextBoxJanvierH = H_du_Mois_Janvier

TextBoxFevrierH = H_du_Mois_Fevrier

TextBoxMarsH = H_du_Mois_Mars

TextBoxAvrilH = H_du_Mois_Avril

TextBoxMaiH = H_du_Mois_Mai

TextBoxJuinH = H_du_Mois_Juin

TextBoxJuilletH = H_du_Mois_Juillet

TextBoxAoutH = H_du_Mois_Aout

TextBoxSeptembreH = H_du_Mois_Septembre

TextBoxOctobreH = H_du_Mois_Octobre

TextBoxNovembreH = H_du_Mois_Novembre

TextBoxDecembreH = H_du_Mois_Decembre

TextBoxANRte = Format(ANRte, "#,##0")

TextBoxANVTT = Format(ANVTT, "#,##0")

TextBoxANHT = Format(ANHT, "#,##0")

TextBoxKMRte = Format(Rte, "#,##0") 'affecte la valeur de km rte du mois en cours au formulaire

TextBoxKMVTT = Format(VTT, "#,##0") 'idem pour VTT

TextBoxKMHT = Format(HT, "#,##0") 'idem pour HT

TextBoxKMmoisTotal = Format(Rte + VTT + HT, "#,##0")

'TextBoxKMan = Total

TextBoxKMan = Format(Total, "#,##0")

TextBoxDerDate = DerDate

TextBoxDerType = DerType

DerKM = DerKMRte + DerKMVTT + DerKMHT

TextBoxDerKM = DerKM

TextBoxDerKMH = DerKMH

'TextBoxPulsMax = FCMax 'affecte la variable FCMax au formulaire

'TextBoxPulsRepos = FCRepos 'idem pour puls repos

'TextBoxPoids = Poids 'et poids

TextBCardio = Cardio

Me.TextBoxDate = Format(Date, "dd/mm/yy")

TextBoxBatt = Format(KmBatterie, "#,##0") 'affecte Km batterie changt vitesses route

TextBoxroulemtceram = Nbre_Mois_Ceram 'affecte nbre mois graissage roulements ceramiques

'---------------------------------------------------------------------------------------------------

'Calcul des zones en fonction de FC Max

'Z1 = Foncier

Zone1mini = Cardio * 50 / 100 'affecte valeur 50% du max

TextBoxZ1mini = Zone1mini 'affecte au formulaire la valeur foncier

Zone1max = Cardio * 60 / 100 'affecte valeur 60% du max

TextBoxZ1Max = Zone1max

'Z2 = Foncier

Zone2Mini = Zone1max + 1 'affecte valeur 60% du max +1

TextBoxZ2Mini = Zone2Mini 'affecte au formulaire la valeur foncier

Zone2Max = Cardio * 70 / 100 'affecte valeur 70% du max

TextBoxZ2Max = Zone2Max

'Z3 = Volume

Zone3Mini = Zone2Max + 1 'affecte valeur 70% du max +1

TextBoxZ3Mini = Zone3Mini 'affecte au formulaire la valeur foncier

Zone3Max = Cardio * 80 / 100 'affecte valeur 80% du max

TextBoxZ3Max = Zone3Max

'Z4 = Volume

Zone4Mini = Zone3Max + 1 'affecte valeur 80% du max +1

TextBoxZ4Mini = Zone4Mini 'affecte au formulaire la valeur foncier

Zone4Max = Cardio * 85 / 100 'affecte valeur 85% du max

TextBoxZ4Max = Zone4Max

'Z5 = Affutage

Zone5Mini = Zone4Max + 1 'affecte valeur 85% du max +1

TextBoxZ5Mini = Zone5Mini 'affecte au formulaire la valeur foncier

Zone5Max = Cardio * 100 / 100 'affecte valeur 100% du max

TextBoxZ5Max = Zone5Max

'********************************************************************

'***RECAP KM DEPUIS 1976 ********************

Dim Derniere_Ligne As Integer

Dim DateDerniereSortie As Date

Sheets("donnees KM").Select

DateDebut = Range("A2").Value

DateDebut = Year(DateDebut)

[A65536].End(3).Select

DateDerniereSortie = ActiveCell.Value

DateDerniereSortie = Year(DateDerniereSortie)

DateFin = ActiveCell.Value

DateFin = Year(DateFin)

NbreAn = DateFin - DateDebut

TextBoxNbreAnDebut = NbreAn

Derniere_Ligne = ActiveCell.Row

'Set PlageKM = Worksheets("donnees KM").Range("E2", [E65536].End(3)) 'definie zone calcul

'--- Total KM Rte depuis 1976 ---------------------------------------------------------------------*******************A revoir ******************************************

Set PlageKMRte = Worksheets("donnees KM").Range("B2", [B65536].End(3)) 'definie zone calcul km rte

KMRteDebut = Application.WorksheetFunction.Sum(PlageKMRte) 'somme KM rte depuis 1976 de la zone

TextBoxDebutRte = Format(KMRteDebut, "#,##0")

[A65536].End(3).Select

'ActiveCell.Offset(0, 112).Value = KMRteDebut 'recup en colonne DI KM rte depuis 1976

Range("DO" & Derniere_Ligne).Value = KMRteDebut

'--- Total KM VTT depuis 1976 ---------------------------------------------------------------------

Set PlageKMVTT = Worksheets("donnees KM").Range("D2", [D65536].End(3)) 'definie zone calcul

KMVTTDebut = Application.WorksheetFunction.Sum(PlageKMVTT) 'somme KM vtt depuis 1976 de la zone

TextBoxDebutVtt = Format(KMVTTDebut, "#,##0")

[A65536].End(3).Select

'ActiveCell.Offset(0, 113).Value = KMVTTDebut 'récup en colonne 113 KM VTT depuis 1976

Range("DP" & Derniere_Ligne).Value = KMVTTDebut

'--- Total KM HT & Piste depuis 1976 ---------------------------------------------------------------------

Set PlageKMHT = Worksheets("donnees KM").Range("F2", [F65536].End(3)) 'definie zone calcul

KMHTDebut = Application.WorksheetFunction.Sum(PlageKMHT) 'somme KM HT depuis 1976 de la zone

TextBoxDebutHT = Format(KMHTDebut, "#,##0")

[A65536].End(3).Select

'ActiveCell.Offset(0, 114).Value = KMHTDebut 'recup en colonne 114 KM HT depuis 1976

Range("DQ" & Derniere_Ligne).Value = KMHTDebut

'--- Total KM Rte + VTT + HT & Piste depuis 1976 ---------------------------------------------------------------------

TotalKMDebut = KMRteDebut + KMVTTDebut + KMHTDebut

TextBoxTotal1976 = Format(TotalKMDebut, "#,##0") 'total KM depuis 1976

[A65536].End(3).Select

'ActiveCell.Offset(0, 115).Value = TotalKMDebut

Range("DR" & Derniere_Ligne).Value = TotalKMDebut

Derniere_Ligne = 0

'--- Km année précédente ----------------------------------------------

TextBoxKmAnPrecedent = Format(Km_An_Precedent, "#,##0")

TextBoxKmMoyenAnPrecedent = Format(Km_Moyen_Mois_Année_Precedente, "#,##0")

'--- matériel ---------------------------------------------------------

TextBoxKm_Av_Ete = Format(Der_KM_Pneu_Rte_Ete_Av, "#,##0")

TextBoxKm_Arr_Ete = Format(Der_KM_Pneu_Rte_Ete_Arr, "#,##0")

TextBoxKm_Av_Hiver = Format(Der_KM_Pneu_Rte_Hiver_Av, "#,##0")

TextBoxKm_Arr_Hiver = Format(Der_KM_Pneu_Rte_Hiver_Arr, "#,##0")

TextBoxChaineRte = Format(Der_Km_Chaine_Rte, "#,##0")

If Der_Km_Chaine_Rte > 4000 Then ' si la chaine a plus de 4000km,

TextBoxChaineRte.BackColor = vbRed 'le textBox passe en rouge

End If

TextBoxCassette_Ete = Format(Der_Km_Cassette_Rte_Ete, "#,##0")

TextBoxCassette_Hiver = Format(Der_Km_Cassette_Rte_Hiver, "#,##0")

TextBoxCassette_HT = Format(Der_Km_Cassette_HT, "#,##0")

TextBoxCalesRteEte = Format(Der_Km_Cales_Rte_Ete, "#,##0")

TextBoxCalesRteHiver = Format(Der_Km_Cales_Rte_Hiver, "#,##0")

TextBoxFreinRteAv = Format(Der_Km_Plaquette_Av_Rte, "#,##0")

TextBoxFreinRteArr = Format(Der_Km_Plaquette_Arr_Rte, "#,##0")

TextBoxPneuAVVTT = Format(Dernier_KM_VTT_Pneu_Avant, "#,##0")

TextBoxPneuARVTT = Format(Dernier_KM_VTT_Pneu_Arr, "#,##0")

TextBoxChaineVTT = Format(Der_Km_Chaine_VTT, "#,##0")

TextBoxCassetteVTT = Format(Der_Km_Cassette_VTT, "#,##0")

TextBoxCalesVTT = Format(Der_Km_Cales_VTT, "#,##0")

TextBoxFreinVTTAv = Format(Der_Km_Plaquettes_Av_VTT, "#,##0")

TextBoxFreinVTTArr = Format(Der_Km_Plaquettes_Arr_VTT, "#,##0")

TextBoxLiquidePrevRte = Nbre_Jours_Liquide_Prev_Rte

TextBoxLiquidePrevVTT = Nbre_Jours_Liquide_Preventif_VTT

TextBoxBatt = Format(Der_KmBatterie, "#,##0")

If Der_KmBatterie > 1000 Then

TextBoxBatt.BackColor = vbRed 'Textbox passe en rouge lorsque la batterie passe les 1000km

End If

TextBoxPileCptrGPS = Der_Nbre_Jours_Pile_Cptr_GPS

TextBoxPileFreqRte = Nbre_Jours_Pile_Freq_Pedalage_Rte

TextBoxPileFreqVTT = Der_Nbre_Jours_Pile_Freq_Pedal_VTT

TextBoxPileCardio = Nbre_Jours_Pile_Cardio

'TextBoxPileFourche = Nbre_Jours_Pile_Fourche

'TextBoxPileCardio = Nbre_Jours_Pile_Cardio

'TextBoxPileFreqRte = Der_Km_Chgt_Vitesses

TextBoxLiquidePrevRte = Nbre_Jours_Liquide_Preventif_Rte

TextBoxLiquidePrevVTT = Nbre_Jours_Liquide_Prev_VTT

'Positionne curseur sur derniere date de feuille données km

Sheets("donnees KM").Select

[A65536].End(3).Select

' ActiveWorkbook.Save

End Sub

@ bientôt

LouReeD

Bonjour,

Sincèrement vu le nombre de lignes de code je doute que tu aies une réponse constructive sans le fichier qui va avec.

De façon générale une erreur de type signifie que tu as déclaré une variable d'un certain type mais qu'ensuite dans le code tu essaies de lui attribuer une valeur d'un autre type.

Exemple : si tu définis une variable en type integer (donc un numérique entier) et que tu essaies de lui imputer du texte Excel va t'afficher cette erreur.

Commence par vérifier l'intégrité de tes données. Toutes tes valeurs sont elles correctes ? Je ne parle pas de leur exactitude mais de leur logique. N'as-tu pas une valeur texte ("toto") dans tes colonnes chiffrées (km et autres#) ?

Ensuite comme dis plus haut lance le pas à pas et place "option explicit" (1 fois par module (tu peux avoir plusieur sub par module) tout en haut en toute première ligne avant même le premier sub du module. "Option explicit" permet de forcer le développeur à déclarer toutes ses variables avec Dim.

Je le répète sans fichier m'est avis que tu n'auras pas plus précis. Tu peux insérer ton fichier en le glissant déposant dans ta réponse ou avec l'icône adéquate dans la barre d'icônes au dessus de ta fenêtre de réponse.

Pour les plus courageux d'entre nous je remets ici ton code en utilisant la bonne mise en forme (copier coller du code précédent fourni sans modifications ni indentations, ni ...

Public Sub RecupereDonnees()

Dim Mois As Integer, FCMax%, FCRepos%, Zone1max%, Zone1mini%, Zone2Mini%, Zone2Max%, Zone3Mini%, Zone3Max%, Zone4Mini%, Zone4Max%, Zone5Mini%, Zone5Max%, TotalJanvier%, TotalFevrier%, TotalMars%, TotalAvril%, TotalMai%, TotalJuin%, TotalJuillet%, TotalAout%, TotalSept%, TotalOct%, TotalNov%, TotalDec%, Cardio%

Dim DerKM% 'DerKMRte%, DerKMVTT%, DerKMHT%

'Dim ANRte%, ANVTT%, ANHT%, Total%

Dim Total As Integer

Dim Rte As Double, VTT#, HT#, Poids#, DerKMH#

Dim RienCardio As Long, RienFCRepos&, RienKG&, RienFCMax&, RienDerKMH&

Dim DerType As String

Dim DerDate As Date

Dim NbreAn As Integer

'Dim KMRteDebut As Long, KMVTTDebut&, KMHTDebut&

'Dim TotalKMDebut&

'Dim DateDebut, DateFin As Date

Dim DateDebut, DateFin As Variant

Dim PlageKMRte, PlageKMVTT, PlageKMHT, PlageKM As Range

Dim Km_Pneu_Av_Rte&, Km_Pneu_Ar_Rte&, Km_Pneu_Av_VTT&, Km_Pneu_Ar_VTT&, Km_Chaine_Rte&, Km_Chaine_VTT&

Dim Km_Cassette_Rte&, Km_Cassette_VTT&, KM_Cales_Rte&, Km_Cale_VTT&, Km_Frein_Rte&, Km_Frein_VTT&

Dim Ligne_Km_Rte&, Ligne_Km_VTT&, Ligne&

Dim Nbre_Jours_Pile_Cptr, Nbre_Jours_Liquide_Preventif_Rte, Nbre_Jours_Liquide_Preventif_VTT As Variant

Dim Nbre_Jours_Pile_Fourche, Nbre_Jours_Pile_Cardio, Nbre_Jours_Pile_Freq_Pedalage As Variant

CompileDonnees ' renvoi vers Sub CompileDonnees()

'--- Total Km An et Mois --------------------------------------------------------------------------------

Mois = Month(Date)

'Mois = 12

With FRecap

Total = .Cells(1, 3) + .Cells(1, 7) + .Cells(1, 11) 'Total km AN rte+vtt+ht

Rte = .Cells(Mois + 1, 3) ' total mois km rte

VTT = .Cells(Mois + 1, 7) 'total mois km rte VTT

HT = .Cells(Mois + 1, 11) 'total mois km rte HT

TotalJanvier = .Cells(2, 3) + .Cells(2, 7) + .Cells(2, 11) 'total km rte+vtt+ht du mois de janvier

TotalFevrier = .Cells(3, 3) + .Cells(3, 7) + .Cells(3, 11)

TotalMars = .Cells(4, 3) + .Cells(4, 7) + .Cells(4, 11)

TotalAvril = .Cells(5, 3) + .Cells(5, 7) + .Cells(5, 11)

TotalMai = .Cells(6, 3) + .Cells(6, 7) + .Cells(6, 11)

TotalJuin = .Cells(7, 3) + .Cells(7, 7) + .Cells(7, 11)

TotalJuillet = .Cells(8, 3) + .Cells(8, 7) + .Cells(8, 11)

TotalAout = .Cells(9, 3) + .Cells(9, 7) + .Cells(9, 11)

TotalSept = .Cells(10, 3) + .Cells(10, 7) + .Cells(10, 11)

TotalOct = .Cells(11, 3) + .Cells(11, 7) + .Cells(11, 11)

TotalNov = .Cells(12, 3) + .Cells(12, 7) + .Cells(12, 11)

TotalDec = .Cells(13, 3) + .Cells(13, 7) + .Cells(13, 11)

ANRte = .Cells(1, 3)

ANVTT = .Cells(1, 7)

ANHT = .Cells(1, 11)

End With

'--- RECUP DERNIERE SORTIE ---------------------------------------------------------------------------

Sheets("donnees KM").Select 'passe à feuille donnees

Dim DerKMHRte, DerKMHVTT, DerKMHHT As Double

Dim DerKMRte, DerKMRVTT, DerKMHT As Integer

Dim DerKMVTT As Integer

[A1].End(4).Select 'selection de la derniere ligne non vide colonne A

While ActiveCell.Offset(0, 1).Value = 0 And ActiveCell.Offset(0, 3).Value = 0 And ActiveCell.Offset(0, 5).Value = 0

ActiveCell.Offset(-1, 0).Select

Wend

If ActiveCell.Row = 1 Then 'si 1er ligne alors

MsgBox ("Aucune sortie n'est enregistrée")

GoTo Apres_DerSortie 'passe cette partie

End If

DerKMHRte = ActiveCell.Offset(0, 2).Value 'affecte valeur à variable

DerKMHVTT = ActiveCell.Offset(0, 4).Value

DerKMHHT = ActiveCell.Offset(0, 6).Value

DerDate = ActiveCell.Value

DerKMRte = ActiveCell.Offset(0, 1).Value

DerKMRVTT = ActiveCell.Offset(0, 3).Value

DerKMHT = ActiveCell.Offset(0, 5).Value

If ActiveCell.Offset(0, 1).Value <> "" And ActiveCell.Offset(0, 3).Value <> "" And ActiveCell.Offset(0, 5).Value <> "" Then

DerType = "Route & VTT & HT"

ElseIf ActiveCell.Offset(0, 1).Value <> "" And ActiveCell.Offset(0, 3).Value <> "" Then

DerType = "Route & VTT"

ElseIf ActiveCell.Offset(0, 1).Value <> "" And ActiveCell.Offset(0, 5).Value <> "" Then

DerType = "Route & HT"

ElseIf ActiveCell.Offset(0, 3).Value <> "" And ActiveCell.Offset(0, 5).Value <> "" Then

DerType = "VTT & HT"

ElseIf ActiveCell.Offset(0, 5).Value <> "" Then

DerType = "HT ou Piste"

ElseIf ActiveCell.Offset(0, 3).Value <> "" Then

DerType = "VTT"

Else

DerType = "Route"

End If

Apres_DerSortie: 'situe macro si colonne A = vide

'Recup Poids moyen -----------------------------

Nbre_Km_mois_Heures_Fcmoyen_Poids_Moyen

Poids_Moy_Janvier = Poids_Moy_Janvier

Poids_Moy_Fevrier = Poids_Moy_Fevrier

Poids_Moy_Mars = Poids_Moy_Mars

Poids_Moy_Avril = Poids_Moy_Avril

Poids_Moy_Mai = Poids_Moy_Mai

Poids_Moy_Juin = Poids_Moy_Juin

Poids_Moy_Juillet = Poids_Moy_Juillet

Poids_Moy_Aout = Poids_Moy_Aout

Poids_Moy_Septembre = Poids_Moy_Septembre

Poids_Moy_Octobre = Poids_Moy_Octobre

Poids_Moy_Novembre = Poids_Moy_Novembre

Poids_Moy_Decembre = Poids_Moy_Decembre

Fc_Moy_Janvier = Fc_Moy_Janvier

Fc_Moy_Fevrier = Fc_Moy_Fevrier

Fc_Moy_Mars = Fc_Moy_Mars

Fc_Moy_Avril = Fc_Moy_Avril

Fc_Moy_Mai = Fc_Moy_Mai

Fc_Moy_Juin = Fc_Moy_Juin

Fc_Moy_Juillet = Fc_Moy_Juillet

Fc_Moy_Aout = Fc_Moy_Aout

Fc_Moy_Septembre = Fc_Moy_Septembre

Fc_Moy_Octobre = Fc_Moy_Octobre

Fc_Moy_Novembre = Fc_Moy_Novembre

Fc_Moy_Decembre = Fc_Moy_Decembre

H_du_Mois_Janvier = H_du_Mois_Janvier

H_du_Mois_Fevrier = H_du_Mois_Fevrier

H_du_Mois_Mars = H_du_Mois_Mars

H_du_Mois_Avril = H_du_Mois_Avril

H_du_Mois_Mai = H_du_Mois_Mai

H_du_Mois_Juin = H_du_Mois_Juin

H_du_Mois_Juillet = H_du_Mois_Juillet

H_du_Mois_Aout = H_du_Mois_Aout

H_du_Mois_Septembre = H_du_Mois_Septembre

H_du_Mois_Octobre = H_du_Mois_Octobre

H_du_Mois_Novembre = H_du_Mois_Novembre

H_du_Mois_Decembre = H_du_Mois_Decembre

Km_An_Precedent = Km_An_Precedent

Km_Moyen_Mois_Année_Precedente = Km_Moyen_Mois_Année_Precedente

H_du_Mois_Janvier = H_du_Mois_Janvier

'RECUP FCRepos ----------------------------------

'Sheets("donnees KM").Select

'[W65536].End(3).Select 'remonte jusqu'à la 1ere ligne non vide

'While ActiveCell.Value = 0 And ActiveCell.Row > 2

'ActiveCell.Offset(-1, 0).Select

'Wend

'If ActiveCell.Row = 1 Then

'GoTo Apres_FCRepos

'End If

'FCRepos = ActiveCell.Value

'Apres_FCRepos:

'RECUP Poids -------------------------------------

'[T65536].End(3).Select 'remonte jusqu'à la 1ere ligne non vide

'While ActiveCell.Value = 0 And ActiveCell.Row > 2

'ActiveCell.Offset(-1, 0).Select

'Wend

'If ActiveCell.Row = 1 Then

'GoTo Apres_FCRepos

'End If

'Poids = ActiveCell.Value ' affecte à variable poids trouvé

'Apres_KG:

'Recup FC MAX Sortie ------------------------

[R65536].End(3).Select 'remonte jusqu'à la 1ere ligne non vide

While ActiveCell.Value = 0 And ActiveCell.Row > 2

ActiveCell.Offset(-1, 0).Select

Wend

If ActiveCell.Row = 1 Then

GoTo Apres_FCMax

End If

FCMax = ActiveCell.Value ' affecte à variable poids trouvé

Apres_FCMax:

'RECUP REGLAGE PULS MAX CARDIO ------------------------------

[X65536].End(3).Select 'remonte jusqu'à la 1ere ligne non vide

While ActiveCell.Value = 0 And ActiveCell.Row > 2

ActiveCell.Offset(-1, 0).Select

Wend

If ActiveCell.Row = 1 Then

GoTo Apres_Cardio

End If

Cardio = ActiveCell.Value ' affecte à variable poids trouvé

Apres_Cardio:

'--- Récup KM pneu AV route été -----------------------------------------

Dim Der_KM_Pneu_Rte_Ete_Av As Integer

[BI65000].End(3).Select

Der_KM_Pneu_Rte_Ete_Av = ActiveCell.Value

'--- Récup KM pneu Arrière route été -----------------------------------------

Dim Der_KM_Pneu_Rte_Ete_Arr As Integer

[BJ65000].End(3).Select

'Der_KM_Pneu_Rte_Ete_Arr = ActiveCell.Value

Der_KM_Pneu_Rte_Ete_Arr = ActiveCell.Value

'--- Récup KM pneu AV route hiver -----------------------------------------

Dim Der_KM_Pneu_Rte_Hiver_Av As Integer

[BT65000].End(3).Select

Der_KM_Pneu_Rte_Hiver_Av = ActiveCell.Value

'--- Récup KM pneu Arrière route hiver -----------------------------------------

Dim Der_KM_Pneu_Rte_Hiver_Arr As Integer

[BU65000].End(3).Select

Der_KM_Pneu_Rte_Hiver_Arr = ActiveCell.Value

'--- Recup Km chaine route --------------------------------

Dim Der_Km_Chaine_Rte As Integer

[BN65000].End(3).Select

Der_Km_Chaine_Rte = ActiveCell.Value

'--- Recup Km casette route été -------------------------------

Dim Der_Km_Cassette_Rte_Ete As Integer

[BL65000].End(3).Select

Der_Km_Cassette_Rte_Ete = ActiveCell.Value

'--- Recup Km casette route Hiver -------------------------------

Dim Der_Km_Cassette_Rte_Hiver As Integer

[BV65000].End(3).Select

Der_Km_Cassette_Rte_Hiver = ActiveCell.Value

'--- Recup Km casette HT -------------------------------

Dim Der_Km_Cassette_HT As Integer

[BH65000].End(3).Select

Der_Km_Cassette_HT = ActiveCell.Value

'--- Récup Km plaquettes Frein Avant route ----------------------

Dim Der_Km_Plaquette_Av_Rte As Integer

[BO65000].End(3).Select

Der_Km_Plaquette_Av_Rte = ActiveCell.Value

'--- Récup Km plaquettes Frein Arrière route ----------------------

Dim Der_Km_Plaquette_Arr_Rte As Integer

[BP65000].End(3).Select

Der_Km_Plaquette_Arr_Rte = ActiveCell.Value

'--- Recup Km cales route Eté ---------------------------------

Dim Der_Km_Cales_Rte_Ete As Integer

[BM65000].End(3).Select

Der_Km_Cales_Rte_Ete = ActiveCell.Value

'--- Recup Km cales route Hiver ---------------------------------

Dim Der_Km_Cales_Rte_Hiver As Integer

[BW65000].End(3).Select

Der_Km_Cales_Rte_Hiver = ActiveCell.Value

'--- Km_Rte_batterie Chgt_Vitesses ----------------------------------

Dim Der_Km_Chgt_Vitesses As Integer

Dim Der_KmBatterie As Integer

[BQ65000].End(3).Select

Der_KmBatterie = ActiveCell.Value

'Der_Km_Chgt_Vitesses = ActiveCell.Value

If Der_KmBatterie > 1200 Then

MsgBox ("Vérifier batterie vélo")

End If

'--- Nbre jours Pile Freq Pédalage Rte ------------------------

Dim Nbre_Jours_Pile_Freq_Pedalage_Rte As Variant

[BR65000].End(3).Select 'passe au dernier changt de pile

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

If ActiveCell.Row = 1 Then 'si remonte en ligne 1

ActiveCell.Offset(1, 0).Select

Ligne_Pile = ActiveCell.Row

Date_Début = Range("A" & Ligne_Pile).Value

End If

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Nbre_Jours_Pile_Freq_Pedalage_Rte = Round(Nbre_Jours_Pile / 365, 1) '& " ans"

PassePileFreqPedalRte:

'Der_Km_Chgt_Vitesses = ActiveCell.Value

'--- Récup Nbre jour Liquide Préventif Rte ----------------

Dim Nbre_Jours_Liquide_Prev_Rte As Variant

'[BU65000].End(3).Select

'Nbre_Jours_Liquide_Prev_Rte = ActiveCell.Value

'--- Récup Nbre jours liquide préventif Rte -------------------

[BS65000].End(3).Select

If ActiveCell.Value = "Ch_Air" Then

GoTo PasseLiqPrevRte

End If

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "Route"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo PasseLiqPrevRte

End If

Wend

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Nbre_Jours_Liquide_Preventif_Rte = Round(Nbre_Jours_Pile / 30, 1) '& " mois"

PasseLiqPrevRte:

Nbre_Jours_Liquide_Preventif_Rte = "0"

'--- Récup Km pneu Av VTT ---------------------------------

Dim Dernier_KM_VTT_Pneu_Avant As Integer

[BX65000].End(3).Select

Dernier_KM_VTT_Pneu_Avant = ActiveCell.Value

'--- Récup Km pneu Arrière VTT ---------------------------------

Dim Dernier_KM_VTT_Pneu_Arr As Integer

[BY65000].End(3).Select

Dernier_KM_VTT_Pneu_Arr = ActiveCell.Value

'--- Recup Km chaine VTT ----------------------------------

Dim Der_Km_Chaine_VTT As Integer

[BZ65000].End(3).Select

Der_Km_Chaine_VTT = ActiveCell.Value

'--- Recup Km casette VTT ---------------------------------

Dim Der_Km_Cassette_VTT As Integer

[CA65000].End(3).Select

Der_Km_Cassette_VTT = ActiveCell.Value

'--- Récup Km plaquettes Avant frein VTT ------------------------

Dim Der_Km_Plaquettes_Av_VTT As Integer

[CB65000].End(3).Select

Der_Km_Plaquettes_Av_VTT = ActiveCell.Value

'--- Récup Km plaquettes Arrière frein VTT ------------------------

Dim Der_Km_Plaquettes_Arr_VTT As Integer

[CC65000].End(3).Select

Der_Km_Plaquettes_Arr_VTT = ActiveCell.Value

'--- Recup Km cales VTT -----------------------------------

Dim Der_Km_Cales_VTT As Integer

[CD65000].End(3).Select

'Der_Km_Cales_VTT = ActiveCell.Value

'--- Récup Nbre jour Liquide Préventif VTT ----------------

Dim Nbre_Jours_Liquide_Prev_VTT As Variant

[CE65000].End(3).Select

If ActiveCell.Value = "Ch_Air" Then

GoTo Passe

End If

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "VTT"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo Passe

End If

Wend

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Nbre_Jours_Liquide_Prev_VTT = Round(Nbre_Jours_Pile / 30, 1) '& " mois"

Passe:

'--- Récup Nbre jours pile Freq Pédalage VTT ---------------------------

Dim Der_Nbre_Jours_Pile_Freq_Pedal_VTT As Variant

[CF65000].End(3).Select

Der_Nbre_Jours_Pile_Freq_Pedal_VTT = "0"

'Nbre_Jours_Pile_Cptr = Nbre_Jours_Pile

'Nbre_Jours_Pile_Cptr = Round(Nbre_Jours_Pile / 365, 1) '& " ans"

'--- Récup Nbre jour pile Cptr-Gps -----------------------

Dim Der_Nbre_Jours_Pile_Cptr_GPS As Long

[CG65000].End(3).Select

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "X"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo PasseCptr_GPS

End If

Wend

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Der_Nbre_Jours_Pile_Cptr_GPS = Round(Nbre_Jours_Pile / 365, 1) '& " ans"

PasseCptr_GPS:

'--- Récup Nbre jours pile ceinture cardio ----------------

[CH65000].End(3).Select

Ligne_Pile = 0

Nbre_Jours_Pile = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "X"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo PasseCardio

End If

Wend

Ligne_Pile = ActiveCell.Row

Cells(Ligne_Pile, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Jours_Pile = DateDiff("d", Date_Début, Date_Fin)

Nbre_Jours_Pile_Cardio = Round(Nbre_Jours_Pile / 365, 1) '& " ans"

PasseCardio:

'--- Nbre mois graissage roulements céramiques roues d'été ----------------

Dim Ceram As Integer

Dim Ligne_Ceram As Integer

Dim Nbre_Mois_Ceram As Integer

[BK65000].End(3).Select

Ligne_Ceram = 0

Nbre_Mois_Ceram = 0

Date_Début = Empty

Date_Fin = Empty

While ActiveCell.Value <> "X"

Selection.End(xlUp).Select

If ActiveCell.Row = 1 Then

GoTo PasseCeram

End If

Wend

Ligne_Ceram = ActiveCell.Row

Cells(Ligne_Ceram, 1).Select

Date_Début = ActiveCell.Value

[A65000].End(3).Select

Date_Fin = ActiveCell.Value

Nbre_Mois_Ceram = DateDiff("M", Date_Début, Date_Fin)

'Nbre_Mois_Ceram = Round(Nbre_Jours_Pile / 30, 1) '& " mois"

If Nbre_Mois_Ceram > 5 Then

TextBoxroulemtceram.BackColor = vbRed 'passe en rouge apres 5 mois

End If

PasseCeram:

'----------------------------------------------------------------------------------------

'AFFECTE AU FORMULAIRE LA VALEUR DES VARIABLES

TextBoxJanvierKm = Format(TotalJanvier, "#,##0") 'affecte la valeur km rte+vtt+ht de janvier

TextBoxFevrierKm = Format(TotalFevrier, "#,##0")

TextBoxMarsKm = Format(TotalMars, "#,##0")

TextBoxAvrilKm = Format(TotalAvril, "#,##0")

TextBoxMaiKm = Format(TotalMai, "#,##0")

TextBoxJuinKm = Format(TotalJuin, "#,##0")

TextBoxJuilletKm = Format(TotalJuillet, "#,##0")

TextBoxAoutKm = Format(TotalAout, "#,##0")

TextBoxSeptembreKm = Format(TotalSept, "#,##0")

TextBoxOctobreKm = Format(TotalOct, "#,##0")

TextBoxNovembreKm = Format(TotalNov, "#,##0")

TextBoxDecembreKm = Format(TotalDec, "#,##0")

TextBoxJanvierPoids = Poids_Moy_Janvier

TextBoxFevrierPoids = Poids_Moy_Fevrier

TextBoxMarsPoids = Poids_Moy_Mars

TextBoxAvrilPoids = Poids_Moy_Avril

TextBoxMaiPoids = Poids_Moy_Mai

TextBoxJuinPoids = Poids_Moy_Juin

TextBoxJuilletPoids = Poids_Moy_Juillet

TextBoxAoutPoids = Poids_Moy_Aout

TextBoxSeptembrePoids = Poids_Moy_Septembre

TextBoxOctobrePoids = Poids_Moy_Octobre

TextBoxNovembrePoids = Poids_Moy_Novembre

TextBoxDecembrePoids = Poids_Moy_Decembre

TextBoxJanvierFc = Fc_Moy_Janvier

TextBoxFevrierFc = Fc_Moy_Fevrier

TextBoxMarsFc = Fc_Moy_Mars

TextBoxAvrilFc = Fc_Moy_Avril

TextBoxMaiFc = Fc_Moy_Mai

TextBoxJuinFc = Fc_Moy_Juin

TextBoxJuilletFc = Fc_Moy_Juillet

TextBoxAoutFc = Fc_Moy_Aout

TextBoxSeptembreFc = Fc_Moy_Septembre

TextBoxOctobreFc = Fc_Moy_Octobre

TextBoxNovembreFc = Fc_Moy_Novembre

TextBoxDecembreFc = Fc_Moy_Decembre

TextBoxJanvierH = H_du_Mois_Janvier

TextBoxFevrierH = H_du_Mois_Fevrier

TextBoxMarsH = H_du_Mois_Mars

TextBoxAvrilH = H_du_Mois_Avril

TextBoxMaiH = H_du_Mois_Mai

TextBoxJuinH = H_du_Mois_Juin

TextBoxJuilletH = H_du_Mois_Juillet

TextBoxAoutH = H_du_Mois_Aout

TextBoxSeptembreH = H_du_Mois_Septembre

TextBoxOctobreH = H_du_Mois_Octobre

TextBoxNovembreH = H_du_Mois_Novembre

TextBoxDecembreH = H_du_Mois_Decembre

TextBoxANRte = Format(ANRte, "#,##0")

TextBoxANVTT = Format(ANVTT, "#,##0")

TextBoxANHT = Format(ANHT, "#,##0")

TextBoxKMRte = Format(Rte, "#,##0") 'affecte la valeur de km rte du mois en cours au formulaire

TextBoxKMVTT = Format(VTT, "#,##0") 'idem pour VTT

TextBoxKMHT = Format(HT, "#,##0") 'idem pour HT

TextBoxKMmoisTotal = Format(Rte + VTT + HT, "#,##0")

'TextBoxKMan = Total

TextBoxKMan = Format(Total, "#,##0")

TextBoxDerDate = DerDate

TextBoxDerType = DerType

DerKM = DerKMRte + DerKMVTT + DerKMHT

TextBoxDerKM = DerKM

TextBoxDerKMH = DerKMH

'TextBoxPulsMax = FCMax 'affecte la variable FCMax au formulaire

'TextBoxPulsRepos = FCRepos 'idem pour puls repos

'TextBoxPoids = Poids 'et poids

TextBCardio = Cardio

Me.TextBoxDate = Format(Date, "dd/mm/yy")

TextBoxBatt = Format(KmBatterie, "#,##0") 'affecte Km batterie changt vitesses route

TextBoxroulemtceram = Nbre_Mois_Ceram 'affecte nbre mois graissage roulements ceramiques

'---------------------------------------------------------------------------------------------------

'Calcul des zones en fonction de FC Max

'Z1 = Foncier

Zone1mini = Cardio * 50 / 100 'affecte valeur 50% du max

TextBoxZ1mini = Zone1mini 'affecte au formulaire la valeur foncier

Zone1max = Cardio * 60 / 100 'affecte valeur 60% du max

TextBoxZ1Max = Zone1max

'Z2 = Foncier

Zone2Mini = Zone1max + 1 'affecte valeur 60% du max +1

TextBoxZ2Mini = Zone2Mini 'affecte au formulaire la valeur foncier

Zone2Max = Cardio * 70 / 100 'affecte valeur 70% du max

TextBoxZ2Max = Zone2Max

'Z3 = Volume

Zone3Mini = Zone2Max + 1 'affecte valeur 70% du max +1

TextBoxZ3Mini = Zone3Mini 'affecte au formulaire la valeur foncier

Zone3Max = Cardio * 80 / 100 'affecte valeur 80% du max

TextBoxZ3Max = Zone3Max

'Z4 = Volume

Zone4Mini = Zone3Max + 1 'affecte valeur 80% du max +1

TextBoxZ4Mini = Zone4Mini 'affecte au formulaire la valeur foncier

Zone4Max = Cardio * 85 / 100 'affecte valeur 85% du max

TextBoxZ4Max = Zone4Max

'Z5 = Affutage

Zone5Mini = Zone4Max + 1 'affecte valeur 85% du max +1

TextBoxZ5Mini = Zone5Mini 'affecte au formulaire la valeur foncier

Zone5Max = Cardio * 100 / 100 'affecte valeur 100% du max

TextBoxZ5Max = Zone5Max

'********************************************************************

'***RECAP KM DEPUIS 1976 ********************

Dim Derniere_Ligne As Integer

Dim DateDerniereSortie As Date

Sheets("donnees KM").Select

DateDebut = Range("A2").Value

DateDebut = Year(DateDebut)

[A65536].End(3).Select

DateDerniereSortie = ActiveCell.Value

DateDerniereSortie = Year(DateDerniereSortie)

DateFin = ActiveCell.Value

DateFin = Year(DateFin)

NbreAn = DateFin - DateDebut

TextBoxNbreAnDebut = NbreAn

Derniere_Ligne = ActiveCell.Row

'Set PlageKM = Worksheets("donnees KM").Range("E2", [E65536].End(3)) 'definie zone calcul

'--- Total KM Rte depuis 1976 ---------------------------------------------------------------------*******************A revoir ******************************************

Set PlageKMRte = Worksheets("donnees KM").Range("B2", [B65536].End(3)) 'definie zone calcul km rte

KMRteDebut = Application.WorksheetFunction.Sum(PlageKMRte) 'somme KM rte depuis 1976 de la zone

TextBoxDebutRte = Format(KMRteDebut, "#,##0")

[A65536].End(3).Select

'ActiveCell.Offset(0, 112).Value = KMRteDebut 'recup en colonne DI KM rte depuis 1976

Range("DO" & Derniere_Ligne).Value = KMRteDebut

'--- Total KM VTT depuis 1976 ---------------------------------------------------------------------

Set PlageKMVTT = Worksheets("donnees KM").Range("D2", [D65536].End(3)) 'definie zone calcul

KMVTTDebut = Application.WorksheetFunction.Sum(PlageKMVTT) 'somme KM vtt depuis 1976 de la zone

TextBoxDebutVtt = Format(KMVTTDebut, "#,##0")

[A65536].End(3).Select

'ActiveCell.Offset(0, 113).Value = KMVTTDebut 'récup en colonne 113 KM VTT depuis 1976

Range("DP" & Derniere_Ligne).Value = KMVTTDebut

'--- Total KM HT & Piste depuis 1976 ---------------------------------------------------------------------

Set PlageKMHT = Worksheets("donnees KM").Range("F2", [F65536].End(3)) 'definie zone calcul

KMHTDebut = Application.WorksheetFunction.Sum(PlageKMHT) 'somme KM HT depuis 1976 de la zone

TextBoxDebutHT = Format(KMHTDebut, "#,##0")

[A65536].End(3).Select

'ActiveCell.Offset(0, 114).Value = KMHTDebut 'recup en colonne 114 KM HT depuis 1976

Range("DQ" & Derniere_Ligne).Value = KMHTDebut

'--- Total KM Rte + VTT + HT & Piste depuis 1976 ---------------------------------------------------------------------

TotalKMDebut = KMRteDebut + KMVTTDebut + KMHTDebut

TextBoxTotal1976 = Format(TotalKMDebut, "#,##0") 'total KM depuis 1976

[A65536].End(3).Select

'ActiveCell.Offset(0, 115).Value = TotalKMDebut

Range("DR" & Derniere_Ligne).Value = TotalKMDebut

Derniere_Ligne = 0

'--- Km année précédente ----------------------------------------------

TextBoxKmAnPrecedent = Format(Km_An_Precedent, "#,##0")

TextBoxKmMoyenAnPrecedent = Format(Km_Moyen_Mois_Année_Precedente, "#,##0")

'--- matériel ---------------------------------------------------------

TextBoxKm_Av_Ete = Format(Der_KM_Pneu_Rte_Ete_Av, "#,##0")

TextBoxKm_Arr_Ete = Format(Der_KM_Pneu_Rte_Ete_Arr, "#,##0")

TextBoxKm_Av_Hiver = Format(Der_KM_Pneu_Rte_Hiver_Av, "#,##0")

TextBoxKm_Arr_Hiver = Format(Der_KM_Pneu_Rte_Hiver_Arr, "#,##0")

TextBoxChaineRte = Format(Der_Km_Chaine_Rte, "#,##0")

If Der_Km_Chaine_Rte > 4000 Then ' si la chaine a plus de 4000km,

TextBoxChaineRte.BackColor = vbRed 'le textBox passe en rouge

End If

TextBoxCassette_Ete = Format(Der_Km_Cassette_Rte_Ete, "#,##0")

TextBoxCassette_Hiver = Format(Der_Km_Cassette_Rte_Hiver, "#,##0")

TextBoxCassette_HT = Format(Der_Km_Cassette_HT, "#,##0")

TextBoxCalesRteEte = Format(Der_Km_Cales_Rte_Ete, "#,##0")

TextBoxCalesRteHiver = Format(Der_Km_Cales_Rte_Hiver, "#,##0")

TextBoxFreinRteAv = Format(Der_Km_Plaquette_Av_Rte, "#,##0")

TextBoxFreinRteArr = Format(Der_Km_Plaquette_Arr_Rte, "#,##0")

TextBoxPneuAVVTT = Format(Dernier_KM_VTT_Pneu_Avant, "#,##0")

TextBoxPneuARVTT = Format(Dernier_KM_VTT_Pneu_Arr, "#,##0")

TextBoxChaineVTT = Format(Der_Km_Chaine_VTT, "#,##0")

TextBoxCassetteVTT = Format(Der_Km_Cassette_VTT, "#,##0")

TextBoxCalesVTT = Format(Der_Km_Cales_VTT, "#,##0")

TextBoxFreinVTTAv = Format(Der_Km_Plaquettes_Av_VTT, "#,##0")

TextBoxFreinVTTArr = Format(Der_Km_Plaquettes_Arr_VTT, "#,##0")

TextBoxLiquidePrevRte = Nbre_Jours_Liquide_Prev_Rte

TextBoxLiquidePrevVTT = Nbre_Jours_Liquide_Preventif_VTT

TextBoxBatt = Format(Der_KmBatterie, "#,##0")

If Der_KmBatterie > 1000 Then

TextBoxBatt.BackColor = vbRed 'Textbox passe en rouge lorsque la batterie passe les 1000km

End If

TextBoxPileCptrGPS = Der_Nbre_Jours_Pile_Cptr_GPS

TextBoxPileFreqRte = Nbre_Jours_Pile_Freq_Pedalage_Rte

TextBoxPileFreqVTT = Der_Nbre_Jours_Pile_Freq_Pedal_VTT

TextBoxPileCardio = Nbre_Jours_Pile_Cardio

'TextBoxPileFourche = Nbre_Jours_Pile_Fourche

'TextBoxPileCardio = Nbre_Jours_Pile_Cardio

'TextBoxPileFreqRte = Der_Km_Chgt_Vitesses

TextBoxLiquidePrevRte = Nbre_Jours_Liquide_Preventif_Rte

TextBoxLiquidePrevVTT = Nbre_Jours_Liquide_Prev_VTT

'Positionne curseur sur derniere date de feuille données km

Sheets("donnees KM").Select

[A65536].End(3).Select

' ActiveWorkbook.Save

End Sub

Bonjour et merci pour votre aide.

Bonne journée

Bonjour,

Bonjour à tous, j'utilise un fichier avec un userform qui s'ouvre à l'ouverture du fichier. Mais une erreur d’exécution 13 "incompatibilité de type" bloque l'ouverture de ce fichier. Y aurait il un moyen d'identifier la variable qui pose problème ?

En temps normal, la ligne qui contient l'erreur est affichée est permet de trouver rapidement la variable qui pose problème. Cependant lors du lancement d'un userform ce n'est pas le cas. S'il y a une erreur dans la procédure d'initialisation du userform tu recevras un message d'erreur pour l'instruction du lancement du userform (et pas pour l'instruction qui provoque réellement l'erreur). Dans ce cas, pour identifier la ligne qui pose problème, il faut mettre un point d'arrêt dans la sub userform_initialize (F9) sur la ligne de la première instruction exécutable de la sub, puis ensuite exécuter la procédure en mode pas-à-pas (F8) jusqu'à recevoir l'erreur.

Si tu ne t'en sors pas, pourrais-tu mettre le code de la sub userform_initialize du userform qui pose problème ?

Bonjour,Après une courte nuit, je me suis remis à identifier le problème.
J'ai peut-être trouvé la cause.
Lorsque je souhaite connaître le poids moyen sur un mois, il arrive qu'il n'y ait pas de valeur sur la plage sélectionnée.

'*** Poids moyen du mois ************************

Set Plage = .Range("S" & Ligne_Debut_Mois & ":S" & Ligne_Fin_Mois)

Poids_Moy_Mois = WorksheetFunction.Average(Plage)

Poids_Moy_Mois = Format(Poids_Moy_Mois, "0.0")

Mais comment écrire :

Si la plage de données est vide alors j'affecte 0 à Poids_Moy_Mois

Encore merci pour votre aide

bonjour Luc_vba, le fil,

un essai sans fichier

Poids_Moy_Mois = application.iferror(WorksheetFunction.Average(Plage),0) >>> sera type double, je suppose, mais la ligne suivante et deviendra string ???

donc directement

Poids_Moy_Mois = format(application.iferror(WorksheetFunction.Average(Plage),0),"0.0") ????

Merci, merci, merci.

Bonsoir,

de rien, de rien, de rien !

Bonne soirée à vous.

@ bientôt

LouReeD

Rechercher des sujets similaires à "comment identifier variable qui genere message erreur execution"