salut a tout le monde j'ai un petit prob

  • Initiateur de la discussion Initiateur de la discussion Omarjawal
  • 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 !

O

Omarjawal

Guest
salut a tout le monde
j'ai des quistions a vous posez .

comment je peu programmer un macro qui permet de modifier une celulle de plusieur fichier Excel existant dans un dossier .





merci d'avance
 
ok



par exemple j'ai 100 fichiers Excel contients les noms des stagiares dans un repertoir
et j'ai un fichier XLS externe dans un autre repertoir
comment je peu modifier un nom de stagiaire dans les 100 fichiers tout par fois a l'aide de le fichier externe
 
bonsoir Omarjawal , bonsoir Mutzik

les fichiers ont il tous la meme structure ?

si oui , peux tu placer sur le forum un exemple zippé ( sans donnees confidentielles , taille moins de 50ko , sans accentuation et sans caracteres speciaux ) pour mieux apréhender ta demande

le nom du stagiaire est toujours dans la meme cellule ou faut il effectuer une recherche dans le classeur ?



bonne soiree
MichelXld

Message édité par: MichelXld, à: 13/05/2005 22:21
 
ok







exemple plus detailler le problem
c:\\mes fichiers\\defaultTSF.xls
le fichier contient une userform contient une zone de texte et un bouton
ce bouton contient le code qui perlet de copie le contenu de la zone de texte dans la celulle A1 des fichier suivants :
c:\\MDB\\TSF1.xls
c:\\MDB\\TSF2.xls
.
.
.
.
.
c:\\MDB\\TSF100.xls
 
bonjour Omarjawalkey

j'espere que cette procedure pourra t'aider

la macro boucle sur les classeurs nommés TSF' & i & '.xls (de 1 à 100 ) dans le repertoire 'C : \\ MDB ' .
chaque classeur doit contenir une feuille nommée 'Feuil1' pour pouvoir y insérer ( dans la cellule A1 ) le texte saisi dans le TextBox1



Code:
Private Sub CommandButton1_Click()
'necessite d'activer la reference Microsoft ActiveX DataObjects x.x Library
Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim Fichier As String
Dim i As Byte

For i = 1 To 100 'boucle sur tous les classeurs
Fichier = 'C:\\MDB\\TSF' & i & '.xls' 'adapter le chemin des fichiers fermés

Set Cn = New ADODB.Connection
Cn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;' & _
           'Data Source=' & Fichier & ';' & _
           'Extended Properties=''Excel 8.0;HDR=No;'';'

Set Cd = New ADODB.Command
Cd.ActiveConnection = Cn

'la zone de Texte 'textBox1' va etre insérée dans la cellule A1 de la 'Feuil1'
Cd.CommandText = 'SELECT * from `Feuil1$A1:A1`'

Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic

Rst(0).Value = TextBox1.Value
Rst.Update
  
Cn.Close
Next i

Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing

MsgBox 'opération terminée '
Unload Me
End Sub


bon week end
MichelXld
 
Salut Michel & Omarjaja,

Petite suggestion, si je puis me permettre.

Ne pourrait-on pas rajouter ces quelques lignes qui donne comme réf le nom de la page et l'adresse de la cellule dans lesquelles on se trouve?

MaFeuille = ActiveSheet.Name
MaCellule = ActiveCell.Address(False, False)
MaCellule2 = MaCellule & ':' & MaCellule
MaRef = 'SELECT * from ' & MaFeuille & '$' & MaCellule2

'Ce qui donnerait après, à la bonne ligne:
Cd.CommandText = MaRef

évidemment, il manque les petites apostrophes, je ne sais pas si c'est important , il y a tellement de choses inutiles dans un code(?!), enfin, je ne sais pas exactement comment les rajouter...

mais tu sauras certainement rattraper mon ignorance...

😱
 
- 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
2
Affichages
150
Retour