Aide sur copie des cellules

Bonjour,

mon problème et j'ai un tableau contiens des valeur et des 0

mois je veux changer tous les 0 par la premier valeur non nul

exemple: si j'ai 0, 0, 0, 10,0,0,0,20 donc je veut les premier 0 devient 10 et les autre 20

alors si je fait ça manuellement c'est trop fatiguent par ce que mon le tableau est grand

vois un petit exemple : fichier Excel

bonjour Yacine new le forum,

mois je veux changer tous les 0 par la 1er valeur non nul

tu peux nous traduire STP ????

changer les zéros par quoi ???? un " 1 "???

a+

papou

exemple: si j'ai 0, 0, 0, 10,0,0,0,20 donc je veut les premier 0 devient 10 et les autre 20

bonsoir

avec une petite matricielle ( a ameloiré r pour faire propre ;mais bon)

19yacinew.zip (15.56 Ko)

la col C est masquée

cordialement

Bonsoir Yacinenew tulipe4 le forum

ton fichier en retour avec une macro et un bouton de commande

a+

papou

23yacine-new-v1.xlsm (26.78 Ko)
tulipe_4 a écrit :

bonsoir

avec une petite matricielle ( a ameloiré r pour faire propre ;mais bon)

la col C est masquée

cordialement

Merci,

vraiment c'est très gentil

vraiment a cause de toi j'ai connu l'index en Excel


paritec a écrit :

Bonsoir Yacinenew tulipe4 le forum

ton fichier en retour avec une macro et un bouton de commande

a+

papou

Merci paritec ;

c'est extraordinaire, est ce que elle marche bien si j'ai plusieurs colonne

est ce que je change seulement

Feuil1.Range("C2").Resize(UBound(aa), 1) = aa 

C2 par D ,E ,... jusque la fin du tableau

re bonjour Yacinenew le forum

la macro est fait pour traiter 1 colonne, si tu veux traiter d'autre colonne dis moi les quelles ou alors tu nous passes un bout de ton fichier avec les colonnes à traiter

Mais si tu veux traiter une autre colonne tu dois changer deux choses

Sub écrire()
    Dim i&, fin&, aa As Variant
    fin = Feuil1.Range("C" & Rows.Count).End(xlUp).Row
    aa = Feuil1.Range("C2:C" & fin) ' là il faut mettre la colonne à traiter
    For i = UBound(aa) - 1 To 1 Step -1
        If aa(i, 1) = 0 Then aa(i, 1) = aa(i + 1, 1)
    Next i
    Feuil1.Range("D2").Resize(UBound(aa), 1) = aa ' et là la colonne ou on recopie les nouvelles valeurs
End Sub

mais le plus simple est de me donner un fichier en m'indiquant clairement quelle colonne tu veux traiter et je modifierai la macro en conséquence

a+

papou

Bonjour yacinenew le forum

voilà ton fichier avec une modification de la macro pour traiter de la colonne C à la N pour exemple

a+

Papou

21yacine-new-v2.xlsm (34.53 Ko)
paritec a écrit :

voilà ton fichier avec une modification de la macro pour traiter de la colonne C à la N pour exemple

a+

Papou

c'est ça; j'ai essayer avec mon vrai fichier et ça marcher parfaitement

merci

Rechercher des sujets similaires à "aide copie"