Depuis quelque temps je m’arrache la tete pour trouver la solution a mon problème qui est le suivant:
dans un classeur:
1°_une première feuille (résultats par distance)dont les titres de colonnes vont de 3000 à5900
2° _10 feuilles de (c1 à c10) ces feuilles là ont une structure identique
_ voici ce que je voudrais faire:
Dans chacune feuille de c1 à c10 j’ai une colonne ‘distance’ ici colonne" R."
il faudrait pour chaque feuille de c1 à c10 regarder la valeur qu’il y a en “R2” ,rechercher cette valeur dans les titres de colonnes de la feuille (résultat par distance) puis copier collage spécial ‘formats’ de cette colonne de la ligne 3 à 22 dans la colonne B (n°) ligne 2a21 des feuilles “c” correspondantes
Je ne suis pas fortiche en vba tout ce que je fais l’ est par l’enregistreur de macro donc je ne peux pas appliquer les conditions avec.
Quelqu’un pourrait-il m’indiquer la marche à suivre pour en arriver à mes fins.
Si tu as réussi à effectuer l’opération à partir d’une macro automatique, tu n’as plus qu’à mettre une boucle autour pour alimenter toutes les feuilles en un seul passage.
Avec quelques éléments fixes à transformer en variable, quand même …
Mais tu vas te retrouver avec un tas de paramètres pas très utiles dans ton cas qui compliquent pour rien le code.
Après suppression de ces éléments inutiles, tu devrais te retrouver avec quelque chose dans ce genre :
Sheets("resultat par distance").Activate 'securité
For n = 1 To 10 'les 10 feuilles cible
feuilleCible = "C" + Trim(Str(n)) 'nom de la feuille
reference = Sheets(feuilleCible).Range("R2")
ActiveSheet.Range("A1", Range("A1").End(xlToRight)).Select ' la ligne de "titres"
Selection.Find(What:=reference).Select 'valeur de référence
Range(Selection.Offset(2), Selection.Offset(21)).Copy ' valeurs à copier
Sheets(feuilleCible).Range("B2").PasteSpecial xlPasteFormats 'zone cible
Next
Sauf erreur de syntaxe, ça doit correspondre à ta demande, pas forcément exactement à ce que tu en attends.
Pour une bonne présentation, il y aurait encore des ajustements à faire en fonction du contenu de tes feuilles cible
Mais ça peut aussi se faire ensuite sous forme de nettoyage manuel.
Encore une fois je te remercie
la macro me met :
“erreur 91”
variable objet ou variable de bloc With non definie
sur la ligne suivante :
Selection.Find(What:=reference).Select 'valeur de référence
Il me suffit de mettre un 0 ans les cellules "R2"qui sont vides et le code fonctionne à merveille.quand je mets ce '0’cela me copie la colonne “b” de"reussite par distance mais je m’en accommoderai
Tu peux tester la valeur de la cellule avant de te lancer dans la copie :
…
reference = Sheets(feuilleCible).Range(“R2”)
if reference <> “” then
ActiveSheet.Range(“A1”, Range(“A1”).End(xlToRight)).Select ’ la ligne de “titres”
Selection.Find(What:=reference).Select 'valeur de référence
Range(Selection.Offset(2), Selection.Offset(21)).Copy ’ valeurs à copier
Sheets(feuilleCible).Range(“B2”).PasteSpecial xlPasteFormats 'zone cible endif
Next
il ne me reste plus qu’à l’adapter à mes besoins.
j’explique : je suis en train de faire une usine à gaz qui consiste à faire tous les jours des stats sur les jokeys, entraineurs, chevaux,n°de corde ,ainsi que leur musique etc… sur toutes les couses de chaque hippodrome ou il y a des courses pmu.
j’arrive au dernier stade ou il faut que je fasse un classement theorique sur chaque course .c’est pas top mais une aide precieuse aux pronostics. au début J’y passais 4 heures ,maintenant 1heure suffit.
J’ai plein de choses à perfectionner encore :(extraction web longueur des macro …) mais petit à petit çà va le faire
Je remercie tous les "forumeurs"qui ont bien voulu m’aider et gcc en particulier.
Miremy