Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Macro-Excel-VB [ Divers / Débutants ] (reggenzi)

vendredi 30 juin 2006 à 12:35:36 | Macro-Excel-VB

reggenzi

Bonjour,
j'ai un problème avec excel, j'ai un fichier excel A dont le contenu de cellules équivaut au contenu des autres cellules située dans un autre fichier B, là ça va, pas besoin de macro. Le problème est que maintenant j'ai plusieurs fichiers B, dépendants des dates, les noms des fichiers deviennent donc B_date1, B_date2, B_date3,.....Ce que je voudrais c'est que quand j'ouvre le fichier A, il y ait une fenetre qui se déclenche me demandant la date, et ,en cliquant OK, le fichier A ira chercher les cellules et feuilles de B_"date indiquée".
Merci d'avance


vendredi 30 juin 2006 à 15:14:26 | Re : Macro-Excel-VB

cameleon044

Bonjour,
dans le Workbook_open() de ton classeur A tu insert  quelque chose du genre
var_date = InputBox("Veuillez saisir la date du jour")
    Workbooks.Open Filename:= _
        "adresse_de_ton_fichier\B_" & var_date

a+

samedi 1 juillet 2006 à 14:21:56 | Re : Macro-Excel-VB

mortalino

Membre Club
Salut, Je me permet, cameleon044, de préciser, afin d'éviter les erreurs de saisie, qu'il vaut mieux utiliser le contrôle "Date and Time Picker" (DTPicker). C'est un composant à rajouter (click droit sur fenêtre des contrôles VBA). Du coup, Dim var_date as Date var_date = DTPicker1.Value et la suite du code de Cameleon044 convient très bien. @++ --Mortalino-- Le Mystérieux Chevalier "Provençal, le Gaulois" N'oubliez pas de lire le règlement !

lundi 3 juillet 2006 à 15:47:31 | Re : Macro-Excel-VB

reggenzi

Bonjour,
marci beaucoup, j'arrive à ouvrir les fichiers avec votre code. J'ai préferé garder les dates en format Chaine (String), le code que j'ai utilisé est donc:

Private Sub Workbook_Open()
Dim var_date As String
var_date = InputBox("Veuillez saisir la date du Tableau de Bord sous format AAAA_MM")
    Workbooks.Open Filename:= _
        "
\\Server4\DATA1\REVUES-PRJ-INGENIERIE\0-Tableaux_de_bord\TdB-Project_status_report_" & var_date

End Sub

, par contre mes formules ne changent pas en fonction de la date indiquée. Je m'explique, par exemple, j'ai dans une cellule donnée du premier fichier, la formule suivante:
 ='\\Server4\DATA1\REVUES-PRJ-INGENIERIE\0-Tableaux_de_bord\[TdB-Project_status_report_2006_04.xls]1089-Case de Train Freighter'!$D$23/1000

où en bleu j'ai le chemin, en rose j'ai le nom du fichier, après j'ai le nom de la feuille se trouvant dans le fichier et à la fin j'ai la cellule concernée.
Ce que j'aimerai pouvoir faire est de rendre le 2006_04, du nom du fichier, variable. Est ce que il y aurai un moyen de stocker la variable var_date et l'insérer automatiquement dans ma formule? C'est à dire une expression "EXPR" telle que ma formule soit:

 ='\\Server4\DATA1\REVUES-PRJ-INGENIERIE\0-Tableaux_de_bord\[TdB-Project_status_report_"EXPR".xls]1089-Case de Train Freighter'!$D$23/1000.

Merci d'avance

Reggenzi


mardi 4 juillet 2006 à 20:01:18 | Re : Macro-Excel-VB

cameleon044

Bonjour
il faut simplement que tu place tes formules excel dans les cellules avec vb. exemple :

Private Sub Workbook_Open()
Dim var_date As String
var_date = InputBox("Veuillez saisir la date du Tableau de Bord sous format AAAA_MM")
    Workbooks.Open Filename:= _
        "\\Server4\DATA1\REVUES-PRJ-INGENIERIE\0-Tableaux_de_bord\TdB-Project_status_report_" & var_date
       
'on insert une formule dans une cellule
Range("A1").FormulaLocal = "='\\Server4\DATA1\REVUES-PRJ-INGENIERIE\0-Tableaux_de_bord\[TdB-Project_status_report_" & var_date & ".xls]1089-Case de Train Freighter'!$D$23/1000"

End Sub

Cordialement

mardi 4 juillet 2006 à 22:54:36 | Re : Macro-Excel-VB

mortalino

Membre Club
En tant qu'utilisateur, si je tape 2/06 ? Bah une erreur survient. Pareil si je tape pleins de trucs qui n'est pas en rapport avec la date. Bref, c'est ce que je vous disais, => DTPicker : ça prend 20 sec. pour le référencer, 3 sec. pour le placer, et 1 à 3 min. suivant ton code pour remplacer tes lignes de codes. Avantage : pas d'erreurs lors du choix utilisateur. Avantage 2, le retour : plus sympa à utiliser (choix date dans une sorte de combo) plutôt que de se taper la saisie... @++ --Mortalino-- Le Mystérieux Chevalier "Provençal, le Gaulois" N'oubliez pas de lire le règlement !

mardi 11 juillet 2006 à 10:44:25 | Re : Macro-Excel-VB

reggenzi

Hi,
merci, même en gardant les dates en type "string", ça a marché, en fait, comme il fallait que le programme trouve un nom de fichier toujours le même à la date près, les caractères en type chaîne sont adaptés. Résultat: tout a marché, pour mon projet en tout cas. Après j'ai inséré un boucle et un Go To pour ne pas avoir une boucle infinie. 
Voici mon code final:

 Private Sub Workbook_Open()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim var_date As String


1   var_date = InputBox("Veuillez saisir la date du Tableau de Bord sous format AAAA_MM" + Chr(13) + "Tapez EXIT, en majiscule, pour sortir")

Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists("\\Server4\DATA1\REVUES-PRJ-INGENIERIE\0-Tableaux_de_bord\TdB-Project_status_report_" & var_date & ".xls") = True Then


 

'Formules à appliquer....
'...
'...
'...
Range("AG24").FormulaLocal = "='\\Server4\DATA1\REVUES-PRJ-INGENIERIE\0-Tableaux_de_bord\[TdB-Project_status_report_" & var_date & ".xls]1371-Nose Fairing Freighter'!$D$23/1000"
'...
'...
'...

 

'Periode....

Dim mois, annee, moistxt, affichage As String
   
mois = Right(var_date, 2)
annee = Left(var_date, 4)

If mois = "01" Then
moistxt = "Janvier"
ElseIf mois = "02" Then
moistxt = "Février"
ElseIf mois = "03" Then
moistxt = "Mars"
ElseIf mois = "04" Then
moistxt = "Avril"
ElseIf mois = "05" Then
moistxt = "Mai"
ElseIf mois = "06" Then
moistxt = "Juin"
ElseIf mois = "07" Then
moistxt = "Juillet"
ElseIf mois = "08" Then
moistxt = "Août"
ElseIf mois = "09" Then
moistxt = "Septembre"
ElseIf mois = "10" Then
moistxt = "Octobre"
ElseIf mois = "11" Then
moistxt = "Novembre"
ElseIf mois = "12" Then
moistxt = "Décembre"
Else
moistxt = "MOIS NON VALIDE!!!"
End If
affichage = moistxt & " " & annee

Range("U3").FormulaLocal = affichage
Else
   If var_date = "EXIT" Then
   GoTo 2
   Else
   reponse = MsgBox("LE TDB DE CE MOIS N'EXISTE PAS ou VOUS AVEZ MAL SAISI LE MOIS" + Chr(13) + "Cliquez OK pour recommencer")
 
   GoTo 1
   End If
End If
Set fs = Nothing
MsgBox ("Fin du traitement, cliquez OK pour voir le résultat")
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

2   End Sub


Merci encore à tous pour vos conseils.

Reggenzi




Cette discussion est classé dans : fichier, vb, macro, excel, cellules


Répondre à ce message

Sujets en rapport avec ce message

vb et macro excel [ par jraynald ] est-il possible à partir d'un programme visual basic ouvrir un fichier excel et lancer une macro appartenant à ce fichier? execution macro Excel via VB [ par GroSam ] Salut! Voila j'aimerais executer une macro perso qui se trouve dans un fichier Excel à partir de VB.. j'essaye d'utiliser application.ExecuteExcel4Ma Pb avec Excel et VB [ par freemonkey ] Salut,Quelqu'un pourrait-om me dire comment est-ce qu'on ouvre un fichier Excel en VB?Mon fichier "compte.xls" se trouve sur le bureau. A vrai dire, j scinder des cellules excel [ par lebleu ] j'ai un fichier ckient dans lequel j'ai besoin de scinder la colonne titre+nom+prenom en une colonne titre, une colonne nom et une colonne prenom...je Empecher l'alerte macro au démarrage d'Excel [ par loïc ] Je cherche le moyen d'éviter l'alerte macro au démarrage d'un fichier Excel de sorte que le destinataire de ce fichier ne puisse empêcher l'execution Empecher l'alerte macro sur Excel 97 [ par loïc ] Je cherche le moyen de ne pas faire apparaître l'alerte macro d'Excel 97 au lancement d'un fichier qui contient des macros. Certe, dans les options d' Comment importer un fichier Excel dans un BD SQL Server en VB ? [ par pounet ] Bonjour !J'aimerais savoir comment faut-il faire à partir de VB pour ouvrir un fichier excel et importer le contenu des colonnes de la feuille dans un ouvrir fichier excel sous vb [ par erich ] comment faire pour ouvrir un fichier excel déjà existant par un bouton.J'ai essayé avec getobject ("monfichier", "excel.application")mais il ne trouve lire les cellules d'un fichier Excel et les enregistrer dans un tableau, le tout dans une page html [ par Chris ] Salut,je cree une page HTML et je souhaite pouvoir acceder en VB script a un fichier excel et enregistrer des cellules dans un tableau, dont je me ser Aide en VB macro !! [ par Cédric ] Bonjour!!Voila mon problème:j'ai fait une boite de dialogue ouvrir/fichier et j'aimerais bien pouvoir utiliser une macro précise avec n'importe quel f


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,076 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.