Tableau excel avec vba pour ligne manquante

Résolu
ml220108 Messages postés 9 Statut Membre -  
ml220108 Messages postés 9 Statut Membre -
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

4 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. ml220108 Messages postés 9 Statut Membre 3
     
    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
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. ml220108 Messages postés 9 Statut Membre 3
     
    Un grand merci Michel

    cela me convient parfaitement

    très cordialement

    Ml220108
    0