Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Bonjour tout le monde. J ai un petit soucis sous exel, est il possible de m'aider ?
Situation: J ai en fait un classeur A sur mon disque C: ou j ai une feuille nomee contact avec en colone A les noms, B prénom, C adresse, ....
Et un classeur B sur mon disque D avec la même feuille nommée contact....
Problème: quand je modifie une adresse ou ajoute un nouveau contact dans le classeur A je voudrais qu'il s ajoute automatiquement dans le classeur B. J ai essayé un code de boisgautier mais celui ne copié que les données de une colone. Moi je souhaiterais qu'il me copie les données de 11 colonnes. Comment puis je faire ?
D'avance merci
Si j'ai bien compris, tu souhaites en fait avoir une copie à jour de ton fichier contact de ton classeur A en C: sur ton classeur B en D. Si c'est ça à mon avis une simple macro enregistrer avec l'enregistreur de macro devrait faire l'affaire. En gros, tu ouvres ton fichier A. Tu cliques sur l'enregistreur de macro, et tu executes la manip suivante. tu selectionnes toute ta feuille où se trouve les données, tu fais copier, tu ouvres ensuite ton classeur B, tu te positionne en A1 de la feuille sur laquelle tu veux copier tes données, tu fais coller (ou collage spécial selon le besoin.), tu enregistres ton fichier B, tu le fermes, tu reviens sur ton classeur A, tu arretes l'enregistreur de macro. Tu crée un bouton pour pouvoir appeler ta macro et à chaque fois que tu rajoutes des données, tu cliques sur ce boutons et ça mettra à jour le classeur B.
En fait, ce n'est pas vraiment cela, ou alors je n'ai pas compris.
Voir fichier en annexe pour exemple:
J'ai le fichier AdresseSource.xls qui est le fichier adresse de reference, la ou je rentre toute les données de contact. Celui ci se trouvera sur le disque reseau J:/
Le deuxième fichier client.xls, est un classeur pouvant se trouver sur n'importe quel pc. Et qui se met à jour suivant les données entrée dans le classeur adressesource.xls
un exemple concret, deux secretaire travaille dans le même batiment, on un fichier exel avec des macro qui font des mails automatique. Ce fichier est donc personel. une chose est commune, c'est la liste des contacts. ce fichier contact est donc sur le reseau. Soit ... si une personne modifie ou entre une nouvelle adresse dans le fichier source, il faut qu'il se mette à jour dans les fichiers des secretaires.
J'ai repris le codage de boisgautier et l'ai un peu modifié. celui ci fonctionne, à la seule condition que les fichiers soit dans le même dossier.
Peu être que cela est un mauvais codage je ne sais pas, je ne sais pas ou spécifier le chemin pour le fichier source.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$F$2" Then
repertoire = ThisWorkbook.Path & "\"
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & repertoire & "\" & "AdresseSource.xls"
Set rs = cnn.Execute("SELECT Name FROM BD_Name")
Sheets("Adresses").[A2:A100].ClearContents
Sheets("Adresses").[A2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT Street FROM BD_Street")
Sheets("Adresses").[B2:B100].ClearContents
Sheets("Adresses").[B2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT PCode FROM BD_PC")
Sheets("Adresses").[C2:C100].ClearContents
Sheets("Adresses").[C2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT Town FROM BD_Town")
Sheets("Adresses").[D2:D100].ClearContents
Sheets("Adresses").[D2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT Country FROM BD_Country")
Sheets("Adresses").[E2:E100].ClearContents
Sheets("Adresses").[E2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT Telephone FROM BD_Tel")
Sheets("Adresses").[F2:F100].ClearContents
Sheets("Adresses").[F2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT FAX FROM BD_Fax")
Sheets("Adresses").[G2:G100].ClearContents
Sheets("Adresses").[G2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT Accreditation FROM BD_Acc")
Sheets("Adresses").[H2:H100].ClearContents
Sheets("Adresses").[H2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT EMail1 FROM BD_Mail1")
Sheets("Adresses").[I2:I100].ClearContents
Sheets("Adresses").[I2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT EMail2 FROM BD_Mail2")
Sheets("Adresses").[J2:J100].ClearContents
Sheets("Adresses").[J2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT Contact FROM BD_Contact")
Sheets("Adresses").[K2:K100].ClearContents
Sheets("Adresses").[K2].CopyFromRecordset rs
Set rs = cnn.Execute("SELECT Phone2 FROM BD_Phone2")
Sheets("Adresses").[L2:L100].ClearContents
Sheets("Adresses").[L2].CopyFromRecordset rs
End If
End Sub
Voila, je pense que je dois modifier cette ligne, mais par quoi ???
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.