VBA : execution puis surlignage en jaune debogage

bertrand1202

XLDnaute Occasionnel
Bonjour


sur un test simple de macro, la macro s'éxécute puis dans la fenêtre VBE une ligne se met en jaune en demandant le débogage.
Excel 2003
Ci-joint procédure:

ub testa()
Dim Vcellule As Range
Dim vligne As Long
Set Vcellule = Range("a5:a65536").End(xlUp)
For vligne = 1 To Rows.Count
If Vcellule.Offset(vligne, 0).Value = "d" Then
Vcellule.Offset(vligne, 2).Value = 16
End If
Next vligne

End Sub

Merci de votre avis
@+
 

JNP

XLDnaute Barbatruc
Re : VBA : execution puis surlignage en jaune debogage

Bonsoir Bertrand1202 :),
Je pense que l'erreur est Rows.Count, qui vaut le nombre de lignes, soit 65536 en 2003, alors que tu voulais certainement écrire
Code:
For vligne = 1 To [B]Vcellule.[/B]Rows.Count
qui tient compte du résultat trouvé au dessus.
Bonne soirée :cool:
 

bertrand1202

XLDnaute Occasionnel
Re : VBA : execution puis surlignage en jaune debogage

Bonsoir JNP

merci de cette explication, je ne comprenais pas d'où venait l'erreur.

quand je met vcellule.rows.count, le programme ne réagit plus., je ne comprends pas

Je recherche par ailleurs comment écrire ws("Feuil1").vcellule.offset car ça bug

Bonne soirée

Merci de ton aide
@+
 
Dernière édition:
G

Guest

Guest
Re : VBA : execution puis surlignage en jaune debogage

bonjour Bertrand, Jnp,

Ben, Range("a5:a65536").End(xlUp) ça donne normalement la première cellule non vide au-dessus de A5 ?!:confused:

Alors si tu nous disais exactement ce que tu cherches à faire et que doit représenter cette variable Vcellule?

A+
 

bertrand1202

XLDnaute Occasionnel
Re : VBA : execution puis surlignage en jaune debogage

Bonsoir Hasco

je cherche simplement à ce que vba parcoure les cellules de la colonne a et qu'à chaque fois qu'il rencontre "d", il inscrive une valeur 2 colonnes à côté.


Merci de ton aide . C'est peut être xldown que j'aurais dû utiliser.
 

JNP

XLDnaute Barbatruc
Re : VBA : execution puis surlignage en jaune debogage

Re :),
Teste ce code
Code:
Sub testa()
Dim Vcellule As Range
Dim Vligne As Long
Dim Feuille As Worksheet
Set Feuille = Sheets("Feuil1")
Set Vcellule = Feuille.Range("A5:C" & Range("a5:a65536").End(xlUp).Rows)
For Vligne = 1 To Vcellule.Rows.Count / 3
If Vcellule.Cells(Vligne, 1).Value = "d" Then
Vcellule.Cells(Vligne, 3).Value = 16
End If
Next Vligne
End Sub
mais l'architecture pourrait être beaucoup plus simple...
Bonne journée :cool:
 

Discussions similaires

Réponses
12
Affichages
242

Statistiques des forums

Discussions
312 108
Messages
2 085 369
Membres
102 875
dernier inscrit
Jimbo2374