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 SubIci 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 SubBonjour 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") ????Bonsoir,
de rien, de rien, de rien !
Bonne soirée à vous.
@ bientôt
LouReeD