Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 09/10/2008, 23h14   #1 (permalink)
Invité de passage
 
Date d'inscription: octobre 2008
Messages: 2
Par défaut Executer un calcul uniquement pour la colonne dont l'en tete correspond

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!
ClaireS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/10/2008, 23h48   #2 (permalink)
pgz
Expert Confirmé
 
Avatar de pgz
 
Date d'inscription: août 2005
Localisation: AriègePyrénées
Messages: 1 768
Par défaut

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
 
Bon courage,

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!".
pgz est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/10/2008, 00h02   #3 (permalink)
Membre habitué
 
Avatar de Ormonth
 
Date d'inscription: février 2008
Localisation: Loire Atlantique
Messages: 164
Par défaut

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
pour cet exemple B1 est en feuil1, tutu en feuil2, le nom cherché est entré en B1. Je lance la macro avec la feuil1 active.
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 !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/10/2008, 02h13   #4 (permalink)
Invité de passage
 
Date d'inscription: octobre 2008
Messages: 2
Par défaut Merci!!!

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!
ClaireS est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAACCESS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide