![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: octobre 2008
Messages: 2
|
Bonjour,
Mon probleme parait simple mais je n'y arrive pas et c'est assez urgent... J'essaie de construire une macro sur une page precise nomme "C223" d'un classeur. Je voudrais que la macro "regarde" quelle colonne (les colonnes vont de C a O et les titres sont dans la ligne 1) a pour titre le mot entre dans la cellule B1 de la page "Sales & Stock" de mon classeur (Il n'y a qu'une seule solonne qui a ce titre precis). Une fois qu'il a trouve la bonne colonne, je voudrais remplacer la valeur de la ligne 39 de cette colonne (page "C223" toujours) par la valeur qui se trouve en C4 sur ma page "Sales & Stock". Merci beaucoup pour votre aide! |
|
|
|
|
|
#2 (permalink) |
|
Expert Confirmé
![]() Date d'inscription: août 2005
Localisation: AriègePyrénées
Messages: 1 768
|
Bonsoir.
Voici une procédure qui devrait faire. Mais je n'ai pas compris où était la difficulté. Code :
Sub MonSub() Dim sh1 As Excel.Worksheet, sh2 As Excel.Worksheet, myRange As Excel.Range Dim i As Integer Set sh1 = Application.ThisWorkbook.Sheets("C223") Set sh2 = Application.ThisWorkbook.Sheets("Sales & Stock") Set myRange = sh1.Range("C1:O1") For i = 1 To myRange.Columns.Count If myRange(i) = sh2.Range("B1") Then Exit For Next i If i < 19 Then sh1.Cells(39, i + 2) = sh2.Range("C4") Set sh1 = Nothing Set sh2 = Nothing Set myRange = Nothing End Sub PGZ
__________________
Vous n'auriez pas l'idée de déclamer : "Oh taon, suspends ton vol!". Alors, de grâce, ne dites plus "Autant pour moi!". Dites : "Au temps pour moi!". |
|
|
|
|
|
#3 (permalink) |
|
Membre habitué
![]() Date d'inscription: février 2008
Localisation: Loire Atlantique
Messages: 164
|
Bonsoir,
une piste très rapide (en exécution) selon ce que je crois avoir compris Utilises les noms pour marquer tes titres (tu nommes ta cellule avec le nom) après un code de ce genre lancé avec la feuille active que l'on veut est OK : Code :
Sub toto() Dim tutu tutu = Range("B1") MsgBox Range(tutu).Column End Sub C'est un piste, pour l'exploiter, il faudra gérer le cas où le nom entré en B1 n'existe pas avec un on error ou un parcours des noms du classeur etc... bonne nuit, Didier
__________________
Didier Gonard N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
|
|
|
#4 (permalink) |
|
Invité de passage
![]() Date d'inscription: octobre 2008
Messages: 2
|
Merci beaucoup a tous les 2!! Vous pouvez pas savoir comme vous m'aidez.
pgz j'ai utilise ta macro et ca marche parfaitement. Maintenant je vais appliquer ca a plusieurs classeurs. La seule difficulte etait dans le fait que je suis vraiment une debutante je crois et tu m'as sauve pas mal de temps. Merci a Ormonth pour m'avoir donne une astuce tres utile! promis la procahine fois ca sera plus complique! |
|
|
|
|
![]() |
![]() |
||
Executer un calcul uniquement pour la colonne dont l'en tete correspond
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|