Help me ^^

Pachi

XLDnaute Nouveau
Bonjour voila je comprends pas a chaque fois que je lance ma macro
il me met ce message d'erreur : Application-defined or object-defined error
Et bloque sur cet ligne : If Cells(f, 1) = Range("A9") Then
Es-ce que ma ligne est mal écrite ou alors faut t'il faire une déclaration de cellule avant.
J'avoue je bloque ca me plante mon programme.
Merci d'avance pour votre aide.
Si cela ne vous aide pas demander moi ce qu'il vous faut pour mieux m'expliquer merci bcp
 

wilfried_42

XLDnaute Barbatruc
Re : Help me ^^

Bonjour à tous

Quand on parle de declarer, ce n'est pas initialiser

Dim f as long ' est une declaration de variable
f = 13 est une initialisation de variable

quand on utilise une variable pour simuler un n° de ligne, il faut faire attention au differentes limites

F = 13 ' declare implicitement une variable entier court (en esperant que ce ne soit pas un byte)

Le nombre de lignes pour les vervions excel avant 2007, c'est 65536, oe une declaration en entier simple ne permet que la moitié, et une declaration en Byte une valeur maxi de 255

je ne sais pas combien de lignes tu cherches à traiter, mais personnellement, quand je travaille sur des ligne, je declare toujours en Long soit Dim f as long
 

Pachi

XLDnaute Nouveau
Re : Help me ^^

Ok voici ma macro je ne peux pas envoyer le fichier ziper il est trop gros desoler
J'espere que ca va pouvoir vous aidé car je bloque vraiment la sur :

Sub Macro5()

f = 13
Do
f = f + 1

If Cells(f, 1) = Range("A9") Then
Exit Do
End If
Loop
If Range("B9") = "" Then
Cells(f, 2) = Cells(f, 2)
Else
Cells(f, 2) = Range("B9")
End If
If Range("C9") = "" Then
Cells(f, 3) = Cells(f, 3)
Else
Cells(f, 3) = Range("C9")
End If
If Range("D9") = "" Then
Cells(f, 4) = Cells(f, 4)
Else
Cells(f, 4) = Range("D9")
End If
End sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Help me ^^

Bonjour le fil, bonjour le forum,

La propriété Value est la propriété par défaut un objet Range. Il n'est donc pas obligatoire de l'écrire même si je pense qu'il est préférable de le faire. Sinon désolé mais je n'ai pas de solution pour ce problème.
 

Orodreth

XLDnaute Impliqué
Re : Help me ^^

Re le fil, bonjour Robert

Ah ? je pensais qu'il n'aimait pas ça.
Autant pour moi.

Dans ce cas, je rejoins Skoobi sur ce qu'il (ou elle) disait sur la condition de sortie

Donc ce serait plutôt
Code:
do until cells(f,1).value = range("A9").value or f = 65536
...
f = f +1
loop

ou bien

do while cells(f,1).value <> range("A9").value or f < 65536
...
f = f +1
loop

de plus, je définirais f en tant que long AVANT la boucle, mais ça, c'est optionnel.

Mais si le problème n'est pas là, je sèche

Thomas
 

Discussions similaires

Réponses
12
Affichages
401

Statistiques des forums

Discussions
312 676
Messages
2 090 803
Membres
104 670
dernier inscrit
Djnic30