Ecrire dans classeur fermé
c
bonjour
voila je récupère une information dans un classeur fermé , jusque la c'est bon mais je souhaite a la fin de ma mise a jour écrire dans ce même classeur fermé
Sub controleversion()
Dim Fichier As String, Cellule As String, Feuille As String
'***controle endroit fichier***********
Dim emplacement As String
emplacement = ActiveWorkbook.FullName
'MsgBox emplacement
splitEmp = Split(emplacement, "\")
If splitEmp(UBound(splitEmp) - 1) = "vba6co" Then
MsgBox ("Le fichier ne doit pas être utilisé à cet emplacement. Veuillez le copier sur votre ordinateur.")
ThisWorkbook.Close
'Application.Quit
Exit Sub
End If
'******************controle presence fichier****************
Fichier = Sheets("Version").Range("b2").Value 'Chemin complet du classeur fermé
MsgBox Fichier
'***********************
'Vérification de l'existance du classeur
Set oFSO = New Scripting.FileSystemObject
'Instanciation de l'objet File
If oFSO.FileExists(Fichier) Then
oFSO.GetFile (Fichier)
'************************tessssstttt*******************************************
Dim Cn As ADODB.Connection
Dim NomFeuille As String, texte_SQL As String
Dim Rst As ADODB.Recordset
'Nom de la feuille dans le classeur fermé
NomFeuille = "Version"
Set Cn = New ADODB.Connection
'--- Connection ---
Cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
Cn.Open
'-----------------
'Définit la requête.
'/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
'résultat de la requête
MsgBox "ccccccc " & Rst(0).Value
versiona = Rst(0).Value
'--- Fermeture connexion ---
Rst.Close
Cn.Close
Set Cn = Nothing
'************controle version *********************
versionb = Worksheets("Version").Cells(2, 1).Value
MsgBox "version b****" & versionb
If versionb < versiona Then
MsgBox " plus petit "
'************enregistrement nouvel version sur bureau*****************
Chemin = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
newclasseur = Chemin & "gestion sertissage " & "V" & versiona & ".xlsm"
MsgBox newclasseur
reponse = MsgBox("Nouvelle Version a copier sur bureau ?", vbYesNo + vbInformation, "Mise à jour") '
If reponse = vbYes Then
MsgBox "on copie fichier"
oFSO.CopyFile Fichier, newclasseur, True
MsgBox ("Mise à jours terminée." & vbNewLine & "Vous pouvez ouvrir le nouveau fichier.")
Else
MsgBox "on copie pas fichier"
Exit Sub
End If
'***********************************************************************
Else
Exit Sub
End If
Else
MsgBox ("le fichier n'existe pas")
Exit Sub
End If
End Subdonc dal le classeur ferme en NomFeuille = "Version" ecrire en a4 quelque chose
merci d'avance
c
bonjour
voici ma version mais je bloque encore
si la cellule
strSQL = "INSERT INTO [" & Feuille & "$b1:b1] " & "VALUES ('" & valeur & "')"n'est pas vide alors erreur
je pense qu'il faut utiliser updapte mais je n'y arrive pas
Sub test()
Dim Feuille As String
Dim Cn As ADODB.connection
Dim strSQL As String
chemin_logiciel = ActiveWorkbook.Path
'Définit le classeur fermé servant de base de données
Fichier = "i:\vba6co\gestion sertissage.xlsm" 'Chemin complet du classeur fermé
Feuille = "Version"
Set Cn = New ADODB.connection
Cn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=yes;"""
Cn.Open
'***********lecture version****************
Set Rst = New ADODB.Recordset
querystr = "select * from [Version$a2:a2]"
Rst.Open querystr, Cn, adOpenUnspecified, adLockUnspecified
nom = Rst.Fields(0).Name
MsgBox nom
Rst.Close
'**************ecrire ancienne version*****************************
Dim leNom As String
valeur = "test"
strSQL = "INSERT INTO [" & Feuille & "$b1:b1] " & "VALUES ('" & valeur & "')"
Cn.Execute strSQL
Cn.Close
Set Cn = Nothing
End Sub