Problème de boucle for

Résolu/Fermé
MART123 - 9 déc. 2013 à 16:16
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 9 déc. 2013 à 16:27
Bonjour,

J'ai un problème avec une boucle for dans vba. Voici mon code
Dim cell As Range
Dim mntfact As Range
Dim mntpo As Range

Set mntfact = ActiveSheet.Range("K2:K5000")
Set mntpo = ActiveSheet.Range("D2:D5000")

For Each cell In mntfact
If cell.Value <> "" Then
mntpo.Value = mntfact.Value
Else

Exit For
End If
Next
End Sub

Voici ce que j'essaie de faire. J'ai deux colonnes à comparer (K et D) et j'aimerais que lorsque qu'il y a un montant d'inscrit dans la colonne K, le montant s'inscrive automatiquement dans la colonne D pour la cellule correspondante. Par contre, si une cellule de la colonne K est vide, je veux qu'il conserve le montant inscrit en D...

Lorsque je commence cette macro, il met effectivement les montants de la colonne K dans la colonne D, sauf qu'il efface les données de la colonne D pour les cellules qui sont vides de la colonne K.

Pouvez-vous me donner une piste svp,

Merci à l'avance,

A voir également:

3 réponses

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
9 déc. 2013 à 16:23
Bonjour,

je modifierais ton code comme suit :


sub x

dim i as variant

for i = 2 to 5000

If cells (i,11).Value <> "" Then
cells(i,4)= cells(i,11)

End If
Next

End [/contents/446-fichier-sub Sub]

0
Effectivement,

Merci beaucoup,
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
9 déc. 2013 à 16:27
Bonjour,

Essaie comme cela
Dim cell As Range
Dim mntfact As Range
Set mntfact = ActiveSheet.Range("K2:K5000")
For Each cell In mntfact
If cell.Value <> "" Then
cell.Offset(0, -7) = cell
End If
Next
End Sub

A+
0