Ecrire en language VBA

rocket4 Messages postés 47 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 31 janvier 2012 - 8 nov. 2011 à 19:02
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 - 9 nov. 2011 à 21:16
bonsoir


ma question porte sur l'ecriture de "plus grande valeur en vba" je ne vois pas comment faire ,

Voici le contexte : je dispose d'un classeur A et d'un classeur B qui lui à des feuilles numerotées.

je souhaiterai ecrire une macro qui puisse aller trouver la plus grande valeur et mes feuilles numérotées dans B et l'ecrire en cellule D2 , feuille 1 de mon classeur A , cela meme en ajoutant d'autres feuilles au classeur B

ce que j'ai essayé de faire :

Sub plusgrand()
Dim A As Workbook
Dim B As Workbook
Dim chemin As String
chemin = ThisWorkbook.Path


Application.Workbooks.Open Filename:=chemin & "\B.xls"
For i = 1 To sheetcounts
sheetcounts = Sheet.Add.Name
Workbooks("A.xls").Sheets("Feuil1").Range("D2") = sheetcounts.Add.Name
Next
Exit Sub


End Sub


malgré quelques recherches , ca ne fonctionne pas et j'ai pu m'en douter certainement parceque le membre de droite de l'egalité ne doit pas etre ecris comme il le faudrait , une aide serait appréciable en vous remerciant par avance .

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
8 nov. 2011 à 19:33
Explique (commente chaque ligne) ce que tu penses/souhaites que chaque ligne fasse dans ton code :

Sub plusgrand()
  Dim A As Workbook
  Dim B As Workbook
  Dim chemin As String
  chemin = ThisWorkbook.Path
  Application.Workbooks.Open Filename:=chemin & "\B.xls"
  For i = 1 To sheetcounts
   sheetcounts = Sheet.Add.Name
   Workbooks("A.xls").Sheets("Feuil1").Range("D2") = sheetcounts.Add.Name
  Next
  Exit Sub
End Sub

car là, j'y vois personnellement du n'importe quoi et ne peux même pas deviner !
Lorsque l'on code, on doit au moins savoir en expliquer chaque ligne (de son code) ! au moins : savoir dire ce que chaque ligne est "supposée" faire !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
rocket4 Messages postés 47 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 31 janvier 2012
8 nov. 2011 à 19:56
Sub plusgrand()
  Dim A As Workbook 'je déclare mon classeur A
  Dim B As Workbook  'je declare mon classeur B
  Dim chemin As String ' je declare ma variable chemin 
  chemin = ThisWorkbook.Path
  Application.Workbooks.Open Filename:=chemin & "\B.xls" 'je donne le chemin d'ouverture de B pour aller y chercher la feuille possédant la plus grande valeur car mes feuilles sont numerotées 10,11, 12 , 13 ,.....etc dans mon classeur B
  For i = 1 To sheetcounts  ' pour toute les feuilles allant de 1 à X dans mon classeur B, X feuille non definie puisque je peux en ajouter 
   sheetcounts = Sheet.Add.Name ' la dernière feuille portant le numero plus elevé
   Workbooks("A.xls").Sheets("Feuil1").Range("D2") = sheetcounts.Add.Name ' je desire placer cette valeur en cellule d2 , feuille 1 de mon classeur A 
next
  Exit Sub
End Sub


en plus simple comme toutes les feuilles de mon classeur B son numerotées , je souhaite réccuprer la plus grande valeur d'une des feuilles et recopier cette valeur en cellule d2 , feuille 1 de mon classeur A , sachant que je peux ajouter des feuilles numerotées à B

voila j'espere que cela peut etre clair , en vous remerciant pour votre aide
0
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
8 nov. 2011 à 21:20
Bonjour,

Qu'est-ce que "sheetcounts" ?
Tu boucles jusqu'à sa valeur, mais ensuite, tu mets une feuille dedans.
Mets Option Explicit en haut de tous tes modules.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
rocket4 Messages postés 47 Date d'inscription lundi 18 décembre 2000 Statut Membre Dernière intervention 31 janvier 2012
8 nov. 2011 à 21:25
j'arrive à cela , mais il manque juste la designation du numero de la dernière feuille
je ne vois pas comment faire dans la ligne

Workbooks("A.xls").Sheets("Feuil1").Range("D2") = Workbooks("B.xls").Sheets(Sheets.Count).Select


du code

Option Explicit
Sub plusgrand()
Dim A As Workbook
Dim B As Workbook
Dim chemin As String
chemin = ThisWorkbook.Path
Dim i As Integer
Application.Workbooks.Open Filename:=chemin & "\B.xls"

 Workbooks("A.xls").Sheets("Feuil1").Range("D2") = Workbooks("B.xls").Sheets(Sheets.Count).Select

Workbooks("B.xls").Close True
Exit Sub


End Sub
 


a++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
9 nov. 2011 à 21:16
Bonjour,

"Le numéro de la dernière feuille"
- Est-ce le nom de la feuille ?
- L'index de la feuille, donc ce sera : MonWorkBook.Sheets.Count

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0