écrire dans classeur fermé

  • Initiateur de la discussion Initiateur de la discussion pierre
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pierre

Guest
bonsoir à tous
je cherche à modifier cette macro trouvé sur cet excelent forum.
En 1er ne pas utiliser d'USF.
Renvoyer dans le classeur fermé les données de la feuille 'résultat' pour les cellules A4, K1, E4, G20, M20
Que ces données s'incrémentent sur une ligne de la 'feuille1' classeur fermé les une aprés les autres.

Private Sub CommandButton1_Click()
'necessite d'activer la reference Microsoft ActiveX Data Objects x.x Library
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Fichier As String, Cible As String, Feuille As String
Dim i As Byte

Fichier = ThisWorkbook.Path & '\\fichierFerme.xls'
Feuille = 'journal$' 'attention a ne pas oublier le '$'
Set Cn = New ADODB.Connection
Cn.Open 'Provider = Microsoft.Jet.OLEDB.4.0;' & _
'data source=' & Fichier & ';' & _
'extended properties=''Excel 8.0;'''

Cible = 'SELECT * FROM [' & Feuille & '];'

Set Rs = New Recordset
Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic

With Rs
.AddNew
.Fields(0) = TextBox1 'date
.Fields(1) = TextBox2 'nom
.Fields(2) = TextBox3 'prenom
.Fields(3) = TextBox4 'valeur
.Fields(4) = TextBox5 'commentaire
.Update
End With

Rs.Close
Cn.Close

For i = 1 To 5
Me.Controls('TextBox' & i) = ''
Next i
End Sub

Merci pour votre aide
 
re bonsoir

je trouve sur le forum des explications pour renvoyer une plage cellule mais je ne parvient pas a l'adapter pour plusieurs cellules séparées. si vous avez une astuce pour réaliser cela je vous en remerci par avance
 
bonsoir Pierre

pour adapter le nom de la feuille , tu modifies cette ligne

Feuille = 'Feuil1$' 'attention a ne pas oublier le '$'


et pour l'export des cellules

With Rs
.AddNew
.Fields(0) = Range('A4')
.Fields(1) = Range('K1')
.Fields(2) = Range('E4')
.Fields(3) = Range('G20')
.Fields(4) = Range('M20')
.Update
End With



bonne soirée
MichelXld
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
771
Réponses
9
Affichages
582
Réponses
8
Affichages
11 K
Retour