Virtual Basic pour Excel...

Aquhydro Messages postés 200 Statut Membre -  
Aquhydro Messages postés 200 Statut Membre -
Bonjour,

Si je pose cette question ici c'est que je pense que la solution est plus sous virtual basic que directement dans excel, si je me suis trompé de place je supprimerais la question et garderais uniquement celle posée sous bureautique, le fait est que j'ai vraiment besoin d'une réponse..

J'ai deux tableau actuellement sous excel:

1er: composé d'une liste de paramètres et permet de lancer une simulation à l'aide de macro et d'un fichier *.exe
2nd : une liste de simulations à effectuer dans le cadre de mon boulot

Or, je dois effectuer quelque chose comme 1500 simulations, donc j'aimerais automatiser cela. Pour cette raison, quelqu'un m'as aidé à créer une boucle qui me permet, a partir de x tableau comme le premier de faire x simulations à la suite de façon automatiques. Le problème est qu'a chaque fois je dois, à la main, copier coller le tableau, et changer les valeurs (soit en changeant manuellement, soit en changeant les liens entre les données, si j'utilise le second tableau.)
Ce que je cherche à faire, c'est à automatiser la création de page excel identique au tableau numéro 1, avec comme difference que les opérations entrées dans les cellules se reportent à chaque fois à une ligne differente de mon tableau numéro 2, un peu comme quand sur une même feuille on répète une opération par copie et qu'elle prend non plus en compte la ligne précédante, mais la ligne suivante.

Est ce possible, et si oui, comment?

Merci beaucoup de vos réponses,

Aquhydro.
A voir également:

4 réponses

Célien Messages postés 6010 Statut Membre 1 993
 
Salut,

Sous Excel précisément le langage c'est VBA. Tu sais programmer en VBA ? Tu veux apprendre ?
0
tuxboy Messages postés 1083 Statut Membre 190
 
J'aime bien ta confusion avec "Virtual Basic" au lieu de "Visual Basic"
Tout est faisable...
Quand tu dis "quelqu'un m'as aidé à créer une boucle" : soit tu demandes à faire des modifications d'un existant à ce quelqu'un, soit tu communiques un exemple pour modification en supprimant les données confidentielles...
https://www.cjoint.com/
0
Aquhydro Messages postés 200 Statut Membre 2
 
Bha en fait c'est quasiment que des données confidentielles, donc c'est assez difficile.
Je n'ai pas besoin qu'on modifie la boucle crée, elle est très bien, je re-explique rapidement :
J'ai un premier tableau du type :
Paramètre 1 : 458 Paramètre 2: 0.5
Paramètre 3: 95 Paramètre 4: (paramètre2/paramètre1)*paramètre1
etc...

Donc ce tableau sert à entrer mes données pour mes simulations, mais je dois en faire 700.
Les données des 700 sont sur un autre tableau du type :

Experience: Paramètre 1 Paramètre 2 Paramètre 3
1 455 0.8 80
2 442 0.2 40
3 428 0.7 300
... .... ... ...
700 200 0.1 80

La boucle que l'on m'as fait sert à répéter pour chaque feuille de mon classe l'opération de lancement du logiciel de simulation, j'aurais donc maintenant besoin d'une boucle pour créer 700 pages identiques à la première, mais donc les données, que j'ai lié dans le premier tableau aux données du 2nd avec de genre de formules
=ARRONDI.SUP((((((E18*'C:Nometadress/[dudocument]Feuil1'!$J2)/F33))/2143)*1300);0)
Etc...
Et ce que j'aimerais c'est créer automatiquement des 700 pages et qu'a chaque fois, la formule passe à la ligne suivante type : $J2 pour la page 1, $J3 pour la page 2, $J4 pour la page 3, sauf qu'il faut que ça le fasse pour toutes les formules rattachée à des données de cette seconde feuille...

Je veux bien apprendre, mais peut etre pas immédiatement, en effet, je suis en stage et je n'ai plus que 2 semaine pour le finir, ça n'est pas un stage informatique, donc à l'heure actuelle je n'ai pas vraiment le loisir d'apprendre réellement... Mais je m'y mettrait par la suite de façon certaine vu que je me rend compte à quel point c'est nécessaire.

Pour ma confusion "visual" "Virtual", j'avoue, c'est une jolie coquille...

Merci de vos réponses,

Aquhydro.
0
Aquhydro Messages postés 200 Statut Membre 2
 
Bon, vu qu'évidement je creuse le sujet pendant ce temps, j'ai trouvé une petite parade à mon problème, désormais je voudrais juste savoir comment changer dans ça :

Sub Donnée
'
' Runs the executable unfichier.exe, which is the
' A version of the software
' Macro written date by Author
'

'
Set Base = ActiveWorkbook

For n = 1 To Sheets.Count
Sheets(n).Select
MsgBox (Range("h24"))
workingdir = Range("h24")
ChDir (workingdir)
Range("J12:Q19").Select
Selection.Copy
Set newbook = Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues
Selection.End(xlDown).Offset(1, 0).Select
Base.Activate
If Range("e13").Value > 0 Then
Range("b27").Select
Range(ActiveCell, ActiveCell.Offset(Range("e13").Value - 1, 7)).Select
Selection.Copy
newbook.Activate
Selection.PasteSpecial Paste:=xlPasteValues
Selection.End(xlDown).Offset(1, 0).Select
Base.Activate
End If

Range("B33:I33").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
newbook.Activate
Selection.PasteSpecial Paste:=xlPasteValues
ActiveWorkbook.SaveAs Filename:="fichierdedonnee.csv", FileFormat:= _
xlCSV
ActiveWorkbook.Close SaveChanges:=False
Base.Activate
Range("a1").Select
Shell ("logiciel.bat")

Next

End Sub

Pour qu'au lieu d'etre une boucle sur le nombre de pages, qui se lance en boucle, ce soit une boucle qui se lance 700 fois, puisque j'y ai intégré des copiers coller assez basique et un déplacement de ligne tout aussi basique, et que cela me suffit amplement...

A ce que j'en ai compris pour ma courte formation, ce qu'il faut que je touche c'est le "For n=1 To Sheets.Count
Sheets(n).select
MsgBox(Range("h24") -dont je n'ai pas besoin que je vais supprimer)
cela peut il suffire de changer par "For n=1 to 700"? Ou dois je insérer mes copiers collers pour que tout se produise en boucle dans l'ordre:
Copier coller des valeurs, décalages des lignes du tableau 2, lancement du logiciel, puis retour au copier coller des valeurs, décalage des lignes, etc...
Merci de vos réponses.

Aquhydro
0