Recherche titre

messin57000 Messages postés 72 Statut Membre -  
Zoul67 Messages postés 2001 Statut Membre -
Bonjour,

j'ai un tableau qui contient plusieur valeur et j'ai creé une macro qui renvoi les valeur qui m'interesse dans une ligne ( la ligne 434)
j'ai créeé un fichier standard ou un tableau vide dans la ligne 434 est deja preparé à recevoir des valeur quand j'applique ma macro.
Le probleme c'est que il suffit que quelqu'un ajoute une ligne ( car je suis pas le seul à utiliser le fichier) et ma macro n'enverra plus les valeurs à la ligne voulu...

Je souhaite savoir s'il y'a une solution à ce problème

Merci d'avance
Messin57000

3 réponses

  1. Zoul67 Messages postés 2001 Statut Membre 149
     
    Bonjour,

    La ligne 434 (actuellement) a-t-elle quelque chose de particulier ?
    (Exemple : toutes les lignes suivantes sont vides)

    A+
    0
  2. messin57000 Messages postés 72 Statut Membre
     
    Bonjour Zoul67,

    j'arrive pas justement à trouver une particularité à cette ligne , j'ai un petit calcul de vérification et quelques graphes après la ligne...

    Voici un fichier de travail:

    http://cjoint.com/13sp/CIyn1lIMN1T.htm

    Merci Zoul67

    A+
    0
    1. Zoul67 Messages postés 2001 Statut Membre 149
       
      Ah oui, les pompes...
      Je te conseille de nommer la cellule E434, par ex. "cellref"
      Range("cellref").Row
      permet de récupérer la bonne ligne même en cas d'ajout/suppression de lignes au-dessus de la ligne 434. Bon, tu n'es pas à l'abri de la suppression du nom de la cellule...
      0
    2. messin57000 Messages postés 72 Statut Membre
       
      j'ai essayé la même écriture Range("cellref").Row je recoi un message d'erreur "utilisation incorecte de la propriété" ... mais c'est vrai que nommer une cellule et la definir comme reference pour la ligne c'est une bonne idée j'avais pas pensé à ca
      0
    3. Zoul67 Messages postés 2001 Statut Membre 149
       
      L'as-tu utilisé dans un bon contexte ?
      Essaie

      Sub essai()
      MsgBox Range("cellref").Row
      End Sub
      0
    4. messin57000 Messages postés 72 Statut Membre
       
      ca m'envoi un msg 434, il te dit que la ligne 434 est fixe... mais je vois pas en fait la différence car quand j'ajoute une ligne avant la cellule E434 devient E435 et donc c'est plus la cellule de ref, si?
      0
    5. Zoul67 Messages postés 2001 Statut Membre 149
       
      Le message est correct.
      La cellule de référence devient alors E435 et tu peux te fier à sa ligne pour compléter ton tableau (si tu ré-exécutes la macro "essai", ça renverra 435, qui est bien la ligne à compléter).
      0
  3. Zoul67 Messages postés 2001 Statut Membre 149
     
    le remplacement pas dans la cellule cells(434, colonne_form_100)
    C'est plutôt les arguments What et Replacement qui posent problème

    le module 3 je sais pas vraiment mais c'est le set graphique
    Pas du tout, le module 3 contient une macro "copier-coller" qui doit être du code mort qui pollue le fichier, tout comme les x lignes de code commenté, des nombres qui errent dans le tableau,...

    Bon, tu as récupéré le fichier de quelqu'un et tu n'es pas un crack en Excel, mais pense à avoir un fichier le plus simple possible, lisible, etc.

    Macros à part, un format comme celui-ci me semble tout de même plus approprié : https://www.cjoint.com/?CIAjZ3LbjO2 .
    Je ne sais pas à quoi correspondent les graphiques, j'espère que tu le sais (en tous cas, certains sont liés à des données d'autres fichiers).

    A+
    0
    1. messin57000 Messages postés 72 Statut Membre
       
      j'ai fait une petite recherche sur d'autre forum et j'ai vu que je peut utiliser d'autre moyen pour regler ce probleme c'est de passer par une variable intermédiaire (ici "Recherche") qui va ressortir la 1ère cellule trouvée avec les critères demandés.

      Dim Recherche As Variant
      Dim ColFind As Long
      With Application.FindFormat.Interior
      .Pattern = xlGray8
      .PatternColorIndex = xlAutomatic
      .Color = 13434828
      .TintAndShade = 0
      .PatternTintAndShade = 0
      End With
      Set Recherche = Sheets("Onglet").Cells.Find(What:="ValeurAChercher", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True)
      ColFind = Recherche.Column

      en utilisant peut etre la mise en forme de la cellule , la couleur ou autres...
      peut être ca serai une idée à exploiter...

      http://cjoint.com/13sp/CIzoLDDxG6Q.htm

      je suis obligé de travailler sur le fichier standard car je peut pas simplifier en supprimant les tableau de vitesse alor que moi ma ligne 434 est incrementer des ligne 41+vitesse*43 et puis j'ai besoin que la ligne 434 soit à l'horizontale pour mes fichiers finale et non la présentation à la verticale... il y'a beaucoup de contrainte c'est pour ca je dois travailler sur le fichier joint.

      Merci

      A+
      0
    2. messin57000 Messages postés 72 Statut Membre
       
      plus de reponse...?
      0
    3. Zoul67 Messages postés 2001 Statut Membre 149
       
      Nettoie la feuillle de ses parasites (nombres bizarres, barres colorées)
      Supprime le code VBA inutile.
      Nomme les plages où se trouvent les données (le copier-coller sera facilité) ; je parle bien de plage nommé, pas de cellules où on met du texte.
      TU partiras ainsi d'une base saine, parce qu'actuellement...

      A+
      0