Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2400 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-EXCEL2003] incompatibilité de type erreur 13

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA-EXCEL2003] incompatibilité de type erreur 13

n°1256071
sakuraba
Posté le 30-11-2005 à 15:33:16  profilanswer
 

bonjour,
 
je voudrais additionner les memes cellules de plusieurs feuilles  
LE PROBLEME vient des formules des cellules que faire ?
http://img510.imageshack.us/img510/624/img78873gm.th.jpg

Code :
  1. Private Sub Worksheet_Activate()
  2. Call Total
  3. End Sub
  4. Sub Total()
  5. Dim x
  6. For x = 21 To 37
  7.     Dim i, PrixHT
  8.         PrixHT = 0
  9.         For i = 3 To Worksheets.Count
  10.            PrixHT = PrixHT + Sheets(i).Range("D" & x).Value
  11.         Next i
  12.          Sheets("Decompte" ).Activate  ' Attention ta feuille total doit rester en position 1
  13.          Range("G" & x).Value = PrixHT
  14. Next x
  15. End Sub


 

mood
Publicité
Posté le 30-11-2005 à 15:33:16  profilanswer
 

n°1256099
watashi
La démotivation : JAMAIS !
Posté le 30-11-2005 à 16:02:24  profilanswer
 

Salut sakuraba :)
 
Tu dis que le problème viens des formules dans les cellules, peux tu nous les donner , et également sur quelle ligne exactement il te fait l'erreur 13 ?
 
@+ watashi


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1256101
sakuraba
Posté le 30-11-2005 à 16:03:10  profilanswer
 

ligne 10  
et la formule  
=SI(B21-C21=0;"";B21-C21)

n°1256137
sakuraba
Posté le 30-11-2005 à 16:36:32  profilanswer
 

Il faudrait recuperer la valeur de la formule et non pas la formule elle meme

n°1256139
watashi
La démotivation : JAMAIS !
Posté le 30-11-2005 à 16:40:20  profilanswer
 

Mais c'est déjà ce que tu fais en faisant le range.value, tu ne récupère que la valeur.
 
je regardes :)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1256140
sakuraba
Posté le 30-11-2005 à 16:40:54  profilanswer
 

tu veux mon fichier xls ?

n°1256142
sakuraba
Posté le 30-11-2005 à 16:42:34  profilanswer
 

en faisant un  
 
Msg = MsgBox(Sheets(i).Range("D21" ).Value)
 
j ai une boite vide donc il recupere bien la valeur "" c est ça qui pose probleme donc il faudrait l exclure

n°1256148
sakuraba
Posté le 30-11-2005 à 16:48:45  profilanswer
 

moi je vois bien un petit  
 

Code :
  1. Sub Acompte()
  2.     Dim i, PrixHT, x
  3.     PrixHT = 0
  4.     For x = 21 To 37
  5.     For i = 3 To Worksheets.Count
  6.         If Sheets(i).Range("D" & x).Value = "" Then
  7.         Sheets(i).Range("D" & x).Value = 0
  8.         Else
  9.             PrixHT = PrixHT + Sheets(i).Range("D" & x).Value
  10.             End If
  11.     Next i
  12.     Sheets("Decompte" ).Activate  ' Attention ta feuille total doit rester en position 1
  13.     Range("G" & x + 3).Value = PrixHT
  14. Next x
  15. End Sub

n°1256153
watashi
La démotivation : JAMAIS !
Posté le 30-11-2005 à 16:52:42  profilanswer
 

Bon ben plus rapide que je pensais.
Tu as une fonctionalité dans excel qui te permet d'afficher ou non les 0.
Le plus simple à mon avis est donc que tu enlèves cette formule et que tu utilise cette fonctionalité excel.
 
Tu as le choix :  
masquer tous les 0 du classeur : outil/option/affichage - désactiver la case valeur zéro
ou pour une cellule :format/cellules/nombre
dans personalisé le type c'est  0;-0;;@
mais ça t'impose des nombres au format standard.
 
Dis moi si ça règle ton problème :)
@+
 


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1256155
sakuraba
Posté le 30-11-2005 à 16:54:50  profilanswer
 

j ai modifier et remit le PrixHT =0  
et ça marche correctment

Code :
  1. Sub Acompte()
  2.     Dim i, PrixHT, x
  3.     PrixHT = 0
  4.     For x = 21 To 37
  5.     For i = 3 To Worksheets.Count
  6.         If Sheets(i).Range("D" & x).Value = "" Then
  7.         Sheets(i).Range("D" & x).Value = 0
  8.         Else
  9.             PrixHT = PrixHT + Sheets(i).Range("D" & x).Value
  10.             End If
  11.     Next i
  12.     Sheets("Decompte" ).Activate  ' Attention ta feuille total doit rester en position 1
  13.     Range("F" & x + 3).Value = PrixHT
  14.     PrixHT = 0
  15. Next x
  16. End Sub

mood
Publicité
Posté le 30-11-2005 à 16:54:50  profilanswer
 

n°1256156
watashi
La démotivation : JAMAIS !
Posté le 30-11-2005 à 16:55:27  profilanswer
 

La sollution du test pour voir si la valeur est "" est bonne aussi :) mais je le mettrais dans l'autre sens, si ce n'est pas vide j'additionne sinon je ne fais rien et je repars dans mon next ;)
 
@+
 
Edit : attention ! en utilisant ta macro comme ça tu perds ta formule dans la cellule et tu te retrouves avec un 0 affiché alors qu'à priori tu n'en voulais pas :)


Message édité par watashi le 30-11-2005 à 16:58:35

---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-EXCEL2003] incompatibilité de type erreur 13

 

Sujets relatifs
[VBA]Excel - Box de confirmationVBA Ajout d'un document
[C#] Type d'argument non conforme CLS[fortran:idb] message d'erreur bizarre!!
[GLUT] erreur bizarre au lancement du programmeErreur avec Librairie GD
erreur avec wsdl et php nusoap[fortran] exe *.for --> erreur 174???
Erreur T_LNUMBER[VBA EXCEL] RechercheV Multicritère avec boite de dialogue
Plus de sujets relatifs à : [VBA-EXCEL2003] incompatibilité de type erreur 13


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR