Tableau excel avec vba pour ligne manquante

Résolu/Fermé
ml220108 Messages postés 9 Date d'inscription dimanche 15 août 2010 Statut Membre Dernière intervention 22 décembre 2010 - 22 déc. 2010 à 13:21
ml220108 Messages postés 9 Date d'inscription dimanche 15 août 2010 Statut Membre Dernière intervention 22 décembre 2010 - 22 déc. 2010 à 17:31
Bonjour,

je vais essayer d'exposer mon problème.

j'ai un tableau de cette forme:

A B C
numero ja voy
1 1000 1500
3 2000 3000
4 1200 900
5 800 1000
7 2000 1520

jusqu'au numéro 31

le problème c'est qui me manque des lignes notamment ds exemple la 2 et la 6.

je voudrais bien une macro qui vérifie le tableau et qui insère une ligne quand il remarque qu'il en manque une!!

ne sachant pas si c'est possible???

Merci à tous



excel 2003
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
22 déc. 2010 à 14:54
Bonjour,

essaies cette proposition

Option Base 1
Sub inserer_ligne()
Dim tablo
Dim premlig As Byte, derlig As Byte, cptr As Byte, valeur As Byte
ReDim tablo(1)
premlig = 1 'ligne départ
derlig = Range("A100").End(xlUp).Row
    For cptr = Cells(premlig, 1) To derlig
        valeur = Cells(cptr, 1)
        ReDim Preserve tablo(valeur)
        tablo(valeur) = valeur
    Next
Cells(premlig, 1).Resize(UBound(tablo), 1) = Application.Transpose(tablo)

End Sub
0
ml220108 Messages postés 9 Date d'inscription dimanche 15 août 2010 Statut Membre Dernière intervention 22 décembre 2010 3
22 déc. 2010 à 15:26
bonjour

Merci pour cette réponse rapide.

je viens de tester et la macro sort une erreur sur la ligne: valeur = Cells(cptr, 1)

je ne sais malheureusement pas comment corriger...

merci bcp

je vous remercie par avance de bien vouloir m'aiguiller car ma connaissance de vba se limite à la fonction enregistrer!!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 22/12/2010 à 17:10
bonjour,
la méthode de michel_m est la bonne et
vu l'heure, je vais me permettre une suggestion, apparemment les n° dans ton tableau commencent en ligne 2 et non en ligne 1 donc tenter de remplacer
premlig = 1 par premlig = 2
bonne suite
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 22/12/2010 à 17:16
ere,

excuses moi je m'étais croisé les yeux avec les n° de lignes et les valeurs dans la ligne #(°!°)#

Option Base 1  
Sub inserer_ligne()  
Dim tablo  
Dim premlig As Byte, derlig As Byte, lig As Byte, cptr As Byte, valeur As Byte  
ReDim tablo(1)  
premlig = Columns(1).Find("*", Range("A65536"), xlValues).Row  
derlig = Range("A100").End(xlUp).Row  

tablo(1) = Cells(premlig, 1)  
lig = premlig  
For cptr = premlig To derlig - 1  
        lig = Columns(1).Find("*", Cells(lig, 1), xlValues).Row  
        valeur = Cells(lig, 1)  
        ReDim Preserve tablo(valeur)  
        tablo(valeur) = valeur  
Next  
Cells(premlig, 1).Resize(UBound(tablo), 1) = Application.Transpose(tablo)  


démo-exemple:
http://www.cijoint.fr/cjlink.php?file=cj201012/cij6MZ2XZU.xls modifié à 17:15h
en espérant que...
Michel
Vous programmez en VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...(P. Fauconnier/dvp)
0
ml220108 Messages postés 9 Date d'inscription dimanche 15 août 2010 Statut Membre Dernière intervention 22 décembre 2010 3
22 déc. 2010 à 17:31
Un grand merci Michel

cela me convient parfaitement

très cordialement

Ml220108
0