Se connecter avec
S'enregistrer | Connectez-vous

code pour remplacer

Dernière réponse : dans Programmation

Bonjour,

Je ne suis pas un as dans le VB, pourriez vous m'aider dans cette macro.
Le code suivant recherche une ligne dans une base et efface le doublon en fonction de la valeur qui est en tête de ligne, càd dans la colonne "A".

  1. For i = 16000 To 8 Step -1
  2. If Cells(i, 1) = Cells(7, 1).Value Then Rows(i).Delete
  3. Next


Je voudrais changer "Rows(i).delete" par quelque chose comme "remplacer les valeurs de la ligne"
J'ai beau me torturer la tête, je ne trouve pas.

Merci d'avance,

Autres pages sur : code remplacer

Lassé par la pub ? Créez un compte


Je remplis toujours la ligne 7.
La macro remplacera la ligne avec la même entête dans la base (lignes plus bas entre 10 et 600)

si par exemple dans la cellule(7,1) j'ai la valeur 150 : toute la ligne 7 remplacera la ligne i avec pour valeur en (i,1) 150.

Comment fonctionne la boucle dans la boucle.

Pas doué moi !

Merci
Expert Programmation

J'ai écris : Cells(i, j).Value = Cells(7, j).Value

Ligne 2. Où est parti le IF THEN ?
Ligne 3. Tu peux le faire dans l'ordre, de 1 à 150 (pas important)
Ligne 4. Indentation stp (pas important)

Comme tu as oublié le IF ligne 2, il est en train de remplacer TOUTES LES LIGNES, de la 16000ème à la 8ème.

Les STEP -1 se justifient si tu supprimes des lignes ou des colonnes. Si tu ne fais que remplacer le contenu des cellules, remets-moi ça dans l'ordre normal

--> Essaye surtout de bien comprendre ce que tu fais. Exige de nous que nous soyons clairs. Mais pour ça, il faut aussi que la question le soit et donc que tu comprennes ce que tu fais. :pt1cable: 

Trés bien l'explication !
Après plusieurs essais, je viens de faire çà :
  1. For i = 8 To 600
  2. For j = 1 To 100
  3. If Cells(i, 1) = Cells(7, 1).Value Then Cells(i, j).Value = Cells(7, j).Value
  4. Next j
  5. Next i

ça a l'air de bien marcher ! Qu'est-ce que tu en penses ?
Lassé par la pub ? Créez un compte