Créer macro Excel pour recherche de zone
Bonjour à tous,
J'essaie depuis un petit moment de créer une macro qui va me créer une sélection à partir d'une recherche. Et qui, une fois trouvée, devrait me faire un "copier" puis "collage special - valeurs".
Je m'explique plus en detail afin d'être le plus clair possible.
De A1 à A12, il y a des dates qui se suivent (du 08.04.2015 au 19.04.2015 par exemple).
De B1 à B12, il y a des données spécifiques (B1 = a, B2 = b, B3 = c, etc... jusqu'à B12 = l)
H1= une date. Par exemple 14.04.2015
Mon but:
- Il faudrait que la macro regarde la valeur en H1 (la date), puis qu'elle recherche cette valeur dans la table A1-A12. Une fois trouvée, il faut qu'elle sélectionne de A1 jusqu'à la date trouvée (14.04.2015 donc A7) et qu'elle prenne l'équivalent dans la colonne B.
Exemple: Si la marco retrouve la date 14.04.2015 en A7, il faut qu'elle selectionne en tout la zone: A1:B7
- Puis qu'elle copie cette zone
- Puis qu'elle colle cette zone en Paste Special Value.
Le but étant que les formules soit écrasées pour les dates voulues et non pour les dates futures également.
J'espère que je me suis fait comprendre... Si ce n'est pas le cas dites moi je vais essayer de faire mieux.
Je joins en annexe un petit tableau excel qui décrit ce que j'explique plus haut.
Merci à vous pour votre aide.
Cordialement,
slay
Bonjour,
simple avec la méthode Find sans besoin de copier / coller avec la propriété Value
tout dépend aussi de la destination …
Bonjour Marc,
Merci pour votre réponse, cependant cela ne répond malheureusement pas à ma question.
La destination est exactement pareil, c'est-à dire A1:B7.
Il s'agit d'écraser les formules par les vraies valeurs.
Oui le but est d'écraser des cellules contenant des formules par des valeurs. Mais il faut que Excel recherche la limite jusqu'où écraser ces formules. Et chaque jour cela sera different vu que j'utilise une formule =today() dans une cellule.
Avec le classeur joint loin de la réalité car sans aucune formule, comment le deviner ?‼
D"où l'intérêt d'une présentation digne de ce nom : claire et exhaustive, avec tenants & aboutissants, …
Et si tel avait été le cas, j'aurais directement proposé un code ! Là je suis occupé …
La méthode Find est bien une solution pour trouver la date correspondante, déjà en consultant son aide VBA
et puis en activant le Générateur de macros, une base de code est livrée sur un plateau !
Bonjour Marc,
Je suis navré mais j'ai noté clairement que je voulais que Excel me fasse une sélection jusqu'à un certain point puis qu'il me copie la zone pour la coller en valeur (la destination de cette zone est complètement égal il me semble... que ça soit B45, H687, ou AAX98 cela ne change rien.
Marc L a écrit :Avec le classeur joint loin de la réalité car sans aucune formule, comment le deviner ?‼
J'ai noté dans l'explication qu'en théorie il y a des formules dans les colonnes A et B mais c'est simplement une information car, encore une fois, mon but et simple:
Ecraser les formules qu'il y a entre A1:B7 (par exemple) par les valeurs exactes qu'il y a dans A1:B7 (d'ou le copy paste value).
Que les formules soit =B567, =jenesaispasquoi, cela est : Complètement égal.
Et oui pour ceci vous avez raison: Il me faut un code car je vois pas comment dire à l'enregistreur de rechercher une valeur et d'arrêter sa selection à cette valeur. Malheureusmement je ne connais pas du tout le code.
Pas du tout noté clairement sinon il y aurait eu plein de réponses pour une problématique de niveau grand débutant !
" Explication " à relire donc !
Comme déjà indiqué, pas besoin de Copy / Paste mais si c'est ta préférence tu peux déjà obtenir une base de code
en activant le Générateur de macros puis en effectuant la recherche sur la date …
Poster ensuite le code ainsi généré entre balises - cf règles du forum, il y a une icône dédiée dans l'éditeur de message - puis
indiquer la difficulté rencontrée pour l'adaptation, un intervenant prendra le relais …