Erreur d'exécution 1004 "Erreur définie par l'application ou par l'objet"

cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009 - 24 juin 2009 à 10:37
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009 - 26 juin 2009 à 09:02
Bonjour à tous,

Voilà j'ai une erreur d'exécution de type 1004 "Erreur définie par l'application ou par l'objet", elle se déoule lors de l'enregistrement de données sur une feuille Excel "Stock" caractérisé par stk dans le code. Voici la ligne où l'erreur est présente:

stk.Cells(iv, 3).Value = Now

Pourtant j'ai vérifié si le format de cellule était bien au bon format  (date et heure) et les feuilles ne sont plus protégées en écriture.
Je n'y comprend plus rien!

N'hésitez pas à poster des réponses!

Cordialement.

wow59

13 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 juin 2009 à 10:58
salut,
iv est une chaine, prise ici comme une variable non déclarée
(penser à OPTION EXPLICIT en haut de chaque feuille de code, même en VBA)

essaye ("iv:3") ou ("iv, 3")
++
0
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009
24 juin 2009 à 14:50
Bonjour,

Après avoir définit iv en single, j'ai une autre erreur, erreur de type 13 "Incompatibilité de type". Qu'en penses-tu PCPT ou même les autres? Faut-il que je décalre iv dans un autre type (j'ai déjà testé pour en entier et en chaîne mais rien)?

Cordialement.

wow59
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 juin 2009 à 15:13
Option Explicit


Private Sub 
CommandButton1_Click()




'  
feuille de travail

    Dim stk As Object
    Set stk = Sheets("Feuil1")

'   cellule de travail n°1
    Dim row As Integer, col As Integer
    row = 3   '3e ligne
    col = 256 'colonne IV

'   applique la
valeur désirée
    Dim c1 As Range
    Set c1 = stk.Cells(row, col)
    c1.Value = CStr(Now) & " par CELL"

'  

cellule de travail n°2



    Dim c2 As Range
    Set c2 = stk.Range("IV4") 'ligne en dessous
    c2.Value = CStr(Now) & " par
RANGE"
    
'   sélectionne visuellement la 2e
zone
    stk.Select
    c2.Activate

'  
nettoyage
    Set c2 = Nothing
    Set c1 = Nothing
    Set stk = Nothing
End Sub






<small>
[../code.aspx?ID=39466 Coloration VB6, VBA,
VBS]
</small>
0
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009
24 juin 2009 à 15:40
Bonjour,

C'est quoi ce code, à quoi sert-il? Moi je veux juste savoir en quel type déclarer mon iv afin d'éviter l'erreur 13 dite d'incompatibilité de type? Cependant mon iv est déjà déclaré dans un module :

Option Explicit
Public ChargeLigne, Cancel, IAjout, IOK, InventaireEnCours  As Boolean
Public c As Range
Public i, iv, ist As Single
Public mvt, stk As Worksheet
Public WbStock As Workbook
Quelle est alors la solution?

Cordialement.

wow59
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 juin 2009 à 15:57
IV est la valeur de ta colonne
REGARDE LE CODE QUE J'AI MIS !!



Cells(row, col)



ou


Range(
"IV4"
)







ps : dim x, y as type
x n'est pas typée !


dim x as type, y as type
0
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009
24 juin 2009 à 16:20
Bonjour,

DSL mais je ne comprend rien à ce que tu veut m'expliquer. Peut-tu me redonner tes explications STP si ce n'est pas trop abuser de ta gentillesse.

Merci d'avance.

Cordialement.

wow59
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 juin 2009 à 16:35
les redonner?
faire un copier coller de ce que j'ai écrit au dessus?.....

LA CHAINE "IV" représente le nom de ta 256e colonne

donc si vraiment tu veux une variable....., le code ci-dessus indique :





'   cellule de travail n°1

    Dim row As Integer, col As Integer
    row = 3   '3e ligne
    col = 256 'colonne IV









donc???

dim iv as integer
iv = 256

stk.Cells(3, iv).Value = Now






c'était dur, de lire !!
0
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009
25 juin 2009 à 08:33
Bonjour,

DSL mais je crois que tu te trompes, iv n'est pas la valeur de la dernière colone d'Excel (je crois), regarde la déclaration de iv dans le module:
Option Explicit
Public ChargeLigne, Cancel, IAjout, IOK, InventaireEnCours  As Boolean
Public c As Range
Public i, iv, ist As Single

Public mvt, stk As Worksheet
Public WbStock As Workbook

Dans mon cas (là je suis sure), iv réprésente le numéro de la ligne et non la colone comme tu affirme regarde pour l'enregistrement:
stk.Cells(iv, 3).Value = Now  <------ Met dans la feuille Stock du classeur, à la 3ème colone la date et l'heure du mouvement (Now)

Cependant le code écrit comme ceci m'affiche une erreur d'incompatibilité de type (13). Cela veut dire qu'il y a des variables non compatibles, voilà maintenant ma vraie question: Comment résoudre ce problème???

Cordialement.

wow59

PS: PCPT j'espère que maintenant tu comprends mieux mon problème!
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 juin 2009 à 09:48
mêmes réponses :

*tu n'as pas typé iv, c'est un variant
(regarde ma réponse PS de 15h57)

*les lignes sont des nombres, les colonnes des chaînes. tu as inversé les 2

(regarde ma réponse en rouge de 16h35)




ps :


DSL mais je crois que tu te trompes, iv n'est pas la valeur de la dernière colone d'Excel



oui et? je n'ai jamais dit que c'était la dernière colonne!!! déjà que tu ne lis pas mes réponses, tu n'es pas non plus obligé de m'en inventer....

j'ai déjà répondu à ta "vraie question", sur un plateau doré à 16h35.
bonne continuation
0
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009
25 juin 2009 à 11:28
Bonjour,

OK pour la déclaration de la variable, c'est bon j'ai compris.

Maintenant concernant les "Cells" je crois bien que j'ai raison, ce sont les lignes puis la colone donc Cells(ligne, colone), dans mon projet Cells(iv,
3), iv étant le n° de ma ligne.

De toute façon en essayant les 2 j'arrive à la même erreur: Erreur d'exécution 1004 "Erreur définie par l'application ou par l'objet"

Je vais essyer la syntaxe que tu m'avais posté à 10h58!


Cordialement.


wow59
0
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009
25 juin 2009 à 13:18
Bonjour,

Alors je viens de tester avec tes possibilités alors là un message d'erreur mais pas le même que celui d'avant: Erreur 13 "Incompatibilité de type".

Alors là vois-tu une solution?

Cordialement.

wow59
0
r1r2 Messages postés 22 Date d'inscription mardi 23 janvier 2007 Statut Membre Dernière intervention 31 mars 2010
25 juin 2009 à 15:46
Bonjour,



Au moment où tu as l'erreur (sur la ligne stk.Cells(iv, 3).Value = Now), quelle est la valeur de ta variable iv ?
0
cs_wow59 Messages postés 17 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 26 juin 2009
26 juin 2009 à 09:02
Bonjour,

Tout au début du programme, la valeur de iv est à 2 comme le montre le code ci-dessous :

iv = 2
Do Until IsEmpty(stk.Cells(iv, 1))
    If IOK = True Then
        InventaireUF.ZeroI.Value = False
        InventaireUF.ComboBox.Value = stk.Cells(iv, 1).Value
        InventaireUF.Stock.Caption = Format(stk.Cells(iv, 8).Value, "0.000")
        InventaireUF.PMP.Caption = Format(stk.Cells(iv, 10).Value, "0.000")
    End If
InventaireUF.Designation.Enabled = False
InventaireUF.Article.Enabled = False
InventaireUF.ShowIf IOK True Then iv iv + 1
Loop

Mais normalement iv est censé représenter le n° de la ligne en focntion d'un article choisit.

C'est pour cela, je ne comprend plus rien!

Cordialement.

wow59
0
Rejoignez-nous