Problème Macro Excel

vsan Messages postés 3 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 21 mars 2005 - 17 mars 2005 à 14:41
ava0275 Messages postés 35 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 mars 2005 - 17 mars 2005 à 16:58
Bonjour à tous !




Je m’adresse à vous afin de solutionner un problème que je rencontre avec Excel et les macros VB…




Explication du problème :




Je dispose de 2 fichiers Excel, dont seulement un qui m’est propre (fichier 2), l’autre ayant été créé par un autre service (fichier 1), je ne peux pas le modifier.


De ce fait, je rapatrie les mesures collectées par le 1er vers mon second fichier (fichier 2).




Les mesures du fichier 1 sont sous la forme de lignes, classées chronologiquement, donc je souhaiterai utiliser ce classement pour automatiser le copié/collé des données, qui se trouvent sur 2 feuilles (A et B)


Pour cela, je souhaiterai, lorsque l’on lance mon fichier 2, une boite de dialogue apparaisse demandant à l’utilisateur de rentrer les numéros de lignes correspondant au premier relevé de la semaine (ligne x feuille A et ligne y feuille B).




Ces paramètres x et y, seraient ainsi utilisé dans une macro qui est la suivante…




Sub maj_capteurs()


Windows("feuille 1").Activate


Sheets("A").Select


Range("Ax:AB(x+17)").Select


Selection.Copy


Windows("feuille B.xls").Activate


Sheets("Capteurs").Select


Range("A3").Select


Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _


True, Transpose:=False


Range("A26").Select


Windows("feuille 1.xls").Activate


Sheets("B").Select


Range("Ay:N(y+17)").Select


Application.CutCopyMode = False


Selection.Copy


Windows("feuille 2.xls").Activate


Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _


True, Transpose:=False


Range("A1:D1").Select


Windows("feuille 1.xls").Activate


Range("A1").Select


Application.CutCopyMode = False


Sheets("Cos A").Select


Range("A1").Select


Windows("feuille 2.xls").Activate


End Sub




Les 2 lignes qui posent problèmes, sont celles soulignées.




Pour les données de la feuille A (du fichier 1….) je souhaiterai sélectionner les cases allant de [colonne A ligne x] jusque [colonne AB ligne x+17] mais je ne sais pas comment faire…


Idem pour la feuille B, de [colonne A ligne y] jusque [colonne N ligne y+17].




Voici comment moi, je verrai le fonctionnement de toute cette routine :


<DIR>
<DIR>
1) Renseignements des valeurs x et y via la boite de dialogue qui s’ouvre une seul fois lors du clic sur le bouton commandant la macro maj() ou alors carrément elle se lance avec l’ouverture du fichier « fichier 2 » mais une seule fois…


2) Modification des valeurs x et y par leur valeurs numériques dans la macro maj_compteurs() ci-dessus…


3) Copiage/collage des bonnes zones de données

</DIR></DIR>


Sinon, ce serait bien si la boite de dialogue n’apparaissait qu’une seule fois… Genre elle modifie durablement la macro et puis elle ne revient plus, ou alors elle apparaît à chaque fois, mais les numéros de pages restent écrit dans les zones de texte…




J’ai déjà essayé de faire la boite de dialogue, mais sans l’aide VB d’installée, c pas facile de coder les divers éléments… Vous pouvez vois ce que g fait avec le screenshot ci joint…


Je vous avoue que je ne pige rien aux private_sub…


Ah oui, précision importante, j’officie (vieux jeu de mot, désolé…) sous Office2000 avec Microsoft Visual Basic 6.0.


Voilà, j’espère que j’ai explicité assez clairement mon problème pour que qqn me comprenne et puisse m’aider…




Je vous remercie d’avance,




Vinc’




PS : et puis tant que j’y suis, à vous demander de l’aide, autant y aller à fond… Je suis nul en VB, c pas en 1 semaine que ça va changer, alors autant tout demander tout de suite !


Imaginons que dans cette boite de dialogue, je vienne rajouter une zone texte qui demande le numéro de la semaine, pensez-vous qu’il soit possible, une fois ce numéro renseigné de modifier des cellules « semaine n » en « semaine valeur indiquée « dans le fichier 2 ???




Re-Merci !




Re-Vinc’

1 réponse

ava0275 Messages postés 35 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 mars 2005
17 mars 2005 à 16:58
Salut ,

la cellule A1 peut encore s ecrire Cells(1,1)
A2 : Cells(2,1)

tu vois ou je veux en venir , dans ton exemple :
Range(Cells(x,1),Cells(x+17,28)).Select

28 correspondant au numero de colonne AB

Alex
0
Rejoignez-nous