Recherche titre

Fermé
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013 - 24 sept. 2013 à 11:39
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 1 oct. 2013 à 14:52
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

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
24 sept. 2013 à 11:45
Bonjour,

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

A+
0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
24 sept. 2013 à 13:53
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
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
24 sept. 2013 à 14:15
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
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
24 sept. 2013 à 14:23
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
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
24 sept. 2013 à 14:29
L'as-tu utilisé dans un bon contexte ?
Essaie

Sub essai()
MsgBox Range("cellref").Row
End Sub
0
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
24 sept. 2013 à 14:39
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
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
24 sept. 2013 à 14:44
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
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
26 sept. 2013 à 09:59
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
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
27 sept. 2013 à 11:01
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
messin57000 Messages postés 67 Date d'inscription lundi 2 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013
1 oct. 2013 à 14:00
plus de reponse...?
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
1 oct. 2013 à 14:52
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