Ecrire en VBA

Bonjour

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 sans pouvoir terminer est :

worbooks("A.xls").sheets("Feuil1").range("D2")=  'c'est là que je bloque 

Je vous remercie pour vos lumières ou suggetions

.en cherchant un peu

voila ce que j'ai fait , mais cela n'ouvre que le classeur B à la feuille comportant le plus numero , et je n'ai pas le renvoi dans le classeur A

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

merci pour toute correction

re....

j'ai tout remodeler

en obtenant ceci , je n'arrive pas à aboutir

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"
For i = 1 To Sheets.Count

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

Workbooks("B.xls").Close True

Next

End Sub
 

j'obtiens en D2 du classeur A " vrai" alors que c'est le numero du dernier onglet du classeur B que je souhaite obtenir

encor merci pour toute aide à ce niveau

Salut Rocket,

C'est un fil ou un monologue

Si ce que tu désires obtenir est le nombre de feuilles du fichier B, voici ton code remodelé :

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.Count

Workbooks("B.xls").Close True

End Sub

Cordialement.

Merci Yvouille pour ton intervention , mais ce n'est pas le nombre de feuille du classeur B , mais l'onglet du classeur B portant le plus grand numero que je souhaite copier dans la cellule D2 du classeur A en feuille 1 , ceux ci sont nommés 100, 101,102,....ect sachant que je peux ajouter des feuilles dans B . ... peut etre que ma formulation n'a pas été adéquate

Re,

Désolé si je n'ai pas compris, mais on ne peut pas dire que tes fichiers exemples étaient très parlants

Voici deux fichiers qui devraient comporter la réponse à ton attente. Autrement, reviens avec plus de clarté.

A te relire.

13a.zip (11.95 Ko)
12b.zip (7.77 Ko)

Merci Yvouille c'est exactement ça que je voulais obtenir , en tout cas , je salut tes compétences , j'ai passé mon apres midi à essayer de trouver vba et moi ... j'ose peut dire que le feeling n'y est pas

il me viens une dernière question , si je souhaite placer ton code dans une feuille et non pas sur un bouton , est ce que je devrais ajouter en introduction au code l'instruction :

Sub Worksheet_change(ByVal Target As range) 

de sorte que la macro opère dès que j'ajoute une feuille dans B sans avoir à cliquez sur un bouton pour lancer la procédure ?

encor merci

Si tu veux que le code se déclenche à chaque rajout de feuille, le seul événement que j'ai trouvé qui le ferait, serait

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Alors ton code se déclenche à tors et à travers, à chaque sélection, à chaque rajout ou à chaque suppression de feuille. Mais peut-être que ce n'est finalement pas trop gênant. A tester.

Par contre, il faudrait déplacer (et modifier en conséquence) le code du fichier A au fichier B

Bonne soirée.

Merci pour tes conseils Yvouille , je vais tester tout ca et au besoin apporter des modifs selon tes recommandations

bonne journée

Rechercher des sujets similaires à "ecrire vba"