Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Incompatibilité de type sous VBA

  • Initiateur de la discussion Initiateur de la discussion Cacou78
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Cacou78

Guest
Bonjour,
j'ai créer un code qui génère une erreur, mais je ne vois pas où.
Pourriez vous m'aidez?

' Déclaration des variables
Dim date_deb, date_fin, date_act As Date
Dim charge_total, charge_jour As Integer

For j = 10 To 126 Step 7
For i = 0 To 5

'Affectation des variables

date_deb = Worksheets("charge_jour").Cells(2, j - 7 - i).Value
date_fin = Worksheets("charge_jour").Cells(2, j - 6 - i).Value
date_act = Worksheets("charge_mois").Cells(1, j).Value
charge_total = Worksheets("charge_jour").Cells(2, j - 4 - i).Value
charge_jour = Worksheets("charge_jour").Cells(2, j - 3 - i).Value
Cells(3, j + i).Select
If date_fin = "" Then
ActiveCell.Value = 0
ElseIf date_deb < DateSerial(Year(date_act), Month(date_act), 1) Then
If date_fin < DateSerial(Year(date_act), Month(date_act), 1) Then
ActiveCell.Value = 0
ElseIf (Year(date_fin) = Year(date_act)) And (Month(date_fin) = Month(date_act)) Then
ActiveCell.Value = DateDiff("d", DateSerial(Year(date_act), Month(date_act), 1), date_fin) * charge_jour
Else
ActiveCell.Value = 30 * charge_jour
End If

ElseIf (Year(date_deb) = Year(date_act)) And (Month(date_deb) = Month(date_act)) Then
If (Year(date_fin) = Year(date_act)) And (Month(date_fin) = Month(date_act)) Then
ActiveCell.Value = charge_total
Else
ActiveCell.Value = DateDiff("d", date_deb, DateSerial(Year(date_act), Month(date_act) + 1, 1) - 1) * charge_jour
End If
Else
ActiveCell.Value = 0
End If



Next i
Next j
 
Re : Incompatibilité de type sous VBA

Bonjour,
Bonjour,
j'ai créer un code qui génère une erreur...
J'en vois au moins 2
1 - ne pas mettre le code entre balises, c'est plus agréable et ça permet le copier/coller (# dans le menu)
2 - ne pas joindre un fichier, parce que là hormis de déclarer dat_deb et date_fin comme dates, ma boule de cristal refuse obstinément
A+
kjin
 
Re : Incompatibilité de type sous VBA

En fait si tu veux, je suis en stage et il est confidentiel, donc je ne peut pas joindre mon fichier avec toutes mes données
 
Re : Incompatibilité de type sous VBA

le point d'arret se trouve à ce niveau la
charge_jour = Worksheets("charge_jour").Cells(2, j - 3 - i).Value
Sinon pour le fichier, je peux vraiment pas. Il est super gros et je mettrais trop de temps à le modifier, aprés je comprend totalement que vous ne puissiez pas m'aider sans. Mais jpréfère ne pas prendre de risque
 
Re : Incompatibilité de type sous VBA

Quand je veux dire réel, c'est par exemple 3,333
qu'est ce que tu veut dire par adresse?
Je suis désolé mais jai commencé vba en début de semaine et je suis assez mauvaise!
 
Re : Incompatibilité de type sous VBA

Re,

ce code fonctionne chez moi :
Code:
Dim charge_jour As Double
charge_jour = 3.333

sinon essaye de le déclarer en "Variant" et vérifie le type de valeur renvoyée... pour ce faire, affiche la fenêtre variables locales dans l'éditeur vba.
 
Re : Incompatibilité de type sous VBA

je te remercie, avec variant ça marche....
Ou plutot ca marche pour la 1ere boucle et pas la deuxième!! il faut que je revois ma boucle!
En tout cas, je vous remercie pour votre aide.
@+
 
Re : Incompatibilité de type sous VBA

Re,

méfie toi tout de même pour la suite, car en fonction du type de valeur renvoyé tu risques d'avoir une erreur, par exemple lors de l'exécution de cette ligne, si "charge_jour" contient du "texte" lors de la multiplication cela va boguer...


Code:
ActiveCell.Value = DateDiff("d", date_deb, DateSerial(Year(date_act), Month(date_act) + 1, 1) - 1) * charge_jour
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
784
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
358
Réponses
5
Affichages
910
Réponses
4
Affichages
732
Réponses
2
Affichages
411
Réponses
8
Affichages
390
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…