Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,
je veux savoir , lorsque le message est pris, si le destinataire interne a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
lui
de consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,
je veux savoir , lorsque le message est pris, si le destinataire interne a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
lui
de consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,
je veux savoir , lorsque le message est pris, si le destinataire interne a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
lui
de consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur) soit
respectivement en colonne A, B et C de la feuille "Prise de Message", et que
les classeurs de chaque collègue portent leurs noms respectifs (celui du
destinataire en colonne A) et qu'ils soient tous dans le même dossier. La
feuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe peu) en
A, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc utilise
ADO en relation tardive (évite de cocher la référence) et elle fonctionne de
la manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas vide,
les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici il n'y
a pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu aura
ces dernières enregistrées) ni sur les modifications qui seront dans ce cas
traitées comme de nouveaux enregistrement et donc ajoutés dans le classeur
correspondant. Si des modifications risque d'être faites et que tu souhaite
qu'elles soient appliquées dans le classeur correspondant il faudra écrire
un peu plus de code (SQL > UPDATE). Fais d'abords un test sur des classeurs
bidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" a écrit dans le message news:Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,je veux savoir , lorsque le message est pris, si le destinataire interne a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
luide consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur) soit
respectivement en colonne A, B et C de la feuille "Prise de Message", et que
les classeurs de chaque collègue portent leurs noms respectifs (celui du
destinataire en colonne A) et qu'ils soient tous dans le même dossier. La
feuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe peu) en
A, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc utilise
ADO en relation tardive (évite de cocher la référence) et elle fonctionne de
la manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas vide,
les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici il n'y
a pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu aura
ces dernières enregistrées) ni sur les modifications qui seront dans ce cas
traitées comme de nouveaux enregistrement et donc ajoutés dans le classeur
correspondant. Si des modifications risque d'être faites et que tu souhaite
qu'elles soient appliquées dans le classeur correspondant il faudra écrire
un peu plus de code (SQL > UPDATE). Fais d'abords un test sur des classeurs
bidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" <BlackStorm@hotmail.com> a écrit dans le message news:
u9eI1I1dFHA.412@tk2msftngp13.phx.gbl...
Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,
je veux savoir , lorsque le message est pris, si le destinataire interne a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
lui
de consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur) soit
respectivement en colonne A, B et C de la feuille "Prise de Message", et que
les classeurs de chaque collègue portent leurs noms respectifs (celui du
destinataire en colonne A) et qu'ils soient tous dans le même dossier. La
feuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe peu) en
A, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc utilise
ADO en relation tardive (évite de cocher la référence) et elle fonctionne de
la manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas vide,
les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici il n'y
a pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu aura
ces dernières enregistrées) ni sur les modifications qui seront dans ce cas
traitées comme de nouveaux enregistrement et donc ajoutés dans le classeur
correspondant. Si des modifications risque d'être faites et que tu souhaite
qu'elles soient appliquées dans le classeur correspondant il faudra écrire
un peu plus de code (SQL > UPDATE). Fais d'abords un test sur des classeurs
bidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" a écrit dans le message news:Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,je veux savoir , lorsque le message est pris, si le destinataire interne a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
luide consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonjoir(c) Hervé
bel effort pour transformer Excel en SGBD, mais ça me semble un peu usine
à gaz quand même ;-)
bien du courage pour la maintenance, mise à jour et évolution (qui ne
manquerons pas d'être demandées bien sur :->) de ce genre de truc ;-)
mais bon, c'que j'en dis moi... toujours le probléme du marteau comme seul
outils. Dommage.
JièL Toujours aussi marteau ;-)
Le 22/06/2005 21:31 vous avez écrit ceci :Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur) soit
respectivement en colonne A, B et C de la feuille "Prise de Message", et
que
les classeurs de chaque collègue portent leurs noms respectifs (celui du
destinataire en colonne A) et qu'ils soient tous dans le même dossier.
La
feuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe peu)
en
A, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc
utilise
ADO en relation tardive (évite de cocher la référence) et elle
fonctionne de
la manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas
vide,
les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici il
n'y
a pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu
aura
ces dernières enregistrées) ni sur les modifications qui seront dans ce
cas
traitées comme de nouveaux enregistrement et donc ajoutés dans le
classeur
correspondant. Si des modifications risque d'être faites et que tu
souhaite
qu'elles soient appliquées dans le classeur correspondant il faudra
écrire
un peu plus de code (SQL > UPDATE). Fais d'abords un test sur des
classeurs
bidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de
Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" a écrit dans le message news:Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en
interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,je veux savoir , lorsque le message est pris, si le destinataire interne
a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de
collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
luide consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonjoir(c) Hervé
bel effort pour transformer Excel en SGBD, mais ça me semble un peu usine
à gaz quand même ;-)
bien du courage pour la maintenance, mise à jour et évolution (qui ne
manquerons pas d'être demandées bien sur :->) de ce genre de truc ;-)
mais bon, c'que j'en dis moi... toujours le probléme du marteau comme seul
outils. Dommage.
JièL Toujours aussi marteau ;-)
Le 22/06/2005 21:31 vous avez écrit ceci :
Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur) soit
respectivement en colonne A, B et C de la feuille "Prise de Message", et
que
les classeurs de chaque collègue portent leurs noms respectifs (celui du
destinataire en colonne A) et qu'ils soient tous dans le même dossier.
La
feuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe peu)
en
A, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc
utilise
ADO en relation tardive (évite de cocher la référence) et elle
fonctionne de
la manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas
vide,
les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici il
n'y
a pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu
aura
ces dernières enregistrées) ni sur les modifications qui seront dans ce
cas
traitées comme de nouveaux enregistrement et donc ajoutés dans le
classeur
correspondant. Si des modifications risque d'être faites et que tu
souhaite
qu'elles soient appliquées dans le classeur correspondant il faudra
écrire
un peu plus de code (SQL > UPDATE). Fais d'abords un test sur des
classeurs
bidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de
Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" <BlackStorm@hotmail.com> a écrit dans le message news:
u9eI1I1dFHA.412@tk2msftngp13.phx.gbl...
Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en
interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,
je veux savoir , lorsque le message est pris, si le destinataire interne
a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de
collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
lui
de consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonjoir(c) Hervé
bel effort pour transformer Excel en SGBD, mais ça me semble un peu usine
à gaz quand même ;-)
bien du courage pour la maintenance, mise à jour et évolution (qui ne
manquerons pas d'être demandées bien sur :->) de ce genre de truc ;-)
mais bon, c'que j'en dis moi... toujours le probléme du marteau comme seul
outils. Dommage.
JièL Toujours aussi marteau ;-)
Le 22/06/2005 21:31 vous avez écrit ceci :Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur) soit
respectivement en colonne A, B et C de la feuille "Prise de Message", et
que
les classeurs de chaque collègue portent leurs noms respectifs (celui du
destinataire en colonne A) et qu'ils soient tous dans le même dossier.
La
feuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe peu)
en
A, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc
utilise
ADO en relation tardive (évite de cocher la référence) et elle
fonctionne de
la manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas
vide,
les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici il
n'y
a pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu
aura
ces dernières enregistrées) ni sur les modifications qui seront dans ce
cas
traitées comme de nouveaux enregistrement et donc ajoutés dans le
classeur
correspondant. Si des modifications risque d'être faites et que tu
souhaite
qu'elles soient appliquées dans le classeur correspondant il faudra
écrire
un peu plus de code (SQL > UPDATE). Fais d'abords un test sur des
classeurs
bidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de
Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" a écrit dans le message news:Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en
interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,je veux savoir , lorsque le message est pris, si le destinataire interne
a
bien pris connaissance du message et surtout à quel moment il a répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de
collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message. A
luide consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir JièL,
Effectivement, c'est une usine à gaz mais c'est toujours mieux que rien.
Quand tu es en panne de super 98 et que l'on te dépanne avec du 95 c'est
toujours bon à prendre et surtout, c'est mieux que de pousser non ? ;o))
Pour ce qui est du marteau, mon grand père disait "pas de bonne mécanique
sans marteau" alors, je suis à la lettre ! (et le l'emploi à tour de bras)
Salutations du gazier ;o)
Hervé.
"JièL Goubert" a écrit dans le
message news: ##Bonjoir(c) Hervé
bel effort pour transformer Excel en SGBD, mais ça me semble un peu
usine
à gaz quand même ;-)
bien du courage pour la maintenance, mise à jour et évolution (qui ne
manquerons pas d'être demandées bien sur :->) de ce genre de truc ;-)
mais bon, c'que j'en dis moi... toujours le probléme du marteau comme
seul
outils. Dommage.
JièL Toujours aussi marteau ;-)
Le 22/06/2005 21:31 vous avez écrit ceci :Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur)
soit
respectivement en colonne A, B et C de la feuille "Prise de Message",
et
queles classeurs de chaque collègue portent leurs noms respectifs (celui
du
destinataire en colonne A) et qu'ils soient tous dans le même dossier.
Lafeuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe
peu)
enA, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc
utiliseADO en relation tardive (évite de cocher la référence) et elle
fonctionne dela manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas
vide,les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici
il
n'ya pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu
auraces dernières enregistrées) ni sur les modifications qui seront dans
ce
castraitées comme de nouveaux enregistrement et donc ajoutés dans le
classeurcorrespondant. Si des modifications risque d'être faites et que tu
souhaitequ'elles soient appliquées dans le classeur correspondant il faudra
écrireun peu plus de code (SQL > UPDATE). Fais d'abords un test sur des
classeursbidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de
Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" a écrit dans le message news:Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des
appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en
interne),l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,je veux savoir , lorsque le message est pris, si le destinataire
interne
abien pris connaissance du message et surtout à quel moment il a
répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de
collègue.Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message.
A
luide consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir JièL,
Effectivement, c'est une usine à gaz mais c'est toujours mieux que rien.
Quand tu es en panne de super 98 et que l'on te dépanne avec du 95 c'est
toujours bon à prendre et surtout, c'est mieux que de pousser non ? ;o))
Pour ce qui est du marteau, mon grand père disait "pas de bonne mécanique
sans marteau" alors, je suis à la lettre ! (et le l'emploi à tour de bras)
Salutations du gazier ;o)
Hervé.
"JièL Goubert" <NOSPAM_JieL.Goubert@laposte-net.NOSPAM> a écrit dans le
message news: ##BJ8u2dFHA.2128@TK2MSFTNGP14.phx.gbl...
Bonjoir(c) Hervé
bel effort pour transformer Excel en SGBD, mais ça me semble un peu
usine
à gaz quand même ;-)
bien du courage pour la maintenance, mise à jour et évolution (qui ne
manquerons pas d'être demandées bien sur :->) de ce genre de truc ;-)
mais bon, c'que j'en dis moi... toujours le probléme du marteau comme
seul
outils. Dommage.
JièL Toujours aussi marteau ;-)
Le 22/06/2005 21:31 vous avez écrit ceci :
Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur)
soit
respectivement en colonne A, B et C de la feuille "Prise de Message",
et
que
les classeurs de chaque collègue portent leurs noms respectifs (celui
du
destinataire en colonne A) et qu'ils soient tous dans le même dossier.
La
feuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe
peu)
en
A, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc
utilise
ADO en relation tardive (évite de cocher la référence) et elle
fonctionne de
la manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas
vide,
les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici
il
n'y
a pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu
aura
ces dernières enregistrées) ni sur les modifications qui seront dans
ce
cas
traitées comme de nouveaux enregistrement et donc ajoutés dans le
classeur
correspondant. Si des modifications risque d'être faites et que tu
souhaite
qu'elles soient appliquées dans le classeur correspondant il faudra
écrire
un peu plus de code (SQL > UPDATE). Fais d'abords un test sur des
classeurs
bidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de
Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" <BlackStorm@hotmail.com> a écrit dans le message news:
u9eI1I1dFHA.412@tk2msftngp13.phx.gbl...
Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des
appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en
interne),
l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,
je veux savoir , lorsque le message est pris, si le destinataire
interne
a
bien pris connaissance du message et surtout à quel moment il a
répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de
collègue.
Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message.
A
lui
de consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir JièL,
Effectivement, c'est une usine à gaz mais c'est toujours mieux que rien.
Quand tu es en panne de super 98 et que l'on te dépanne avec du 95 c'est
toujours bon à prendre et surtout, c'est mieux que de pousser non ? ;o))
Pour ce qui est du marteau, mon grand père disait "pas de bonne mécanique
sans marteau" alors, je suis à la lettre ! (et le l'emploi à tour de bras)
Salutations du gazier ;o)
Hervé.
"JièL Goubert" a écrit dans le
message news: ##Bonjoir(c) Hervé
bel effort pour transformer Excel en SGBD, mais ça me semble un peu
usine
à gaz quand même ;-)
bien du courage pour la maintenance, mise à jour et évolution (qui ne
manquerons pas d'être demandées bien sur :->) de ce genre de truc ;-)
mais bon, c'que j'en dis moi... toujours le probléme du marteau comme
seul
outils. Dommage.
JièL Toujours aussi marteau ;-)
Le 22/06/2005 21:31 vous avez écrit ceci :Bonsoir BlackStorm,
En admettant que tes champs (Destinataire, Objet et Interlocuteur)
soit
respectivement en colonne A, B et C de la feuille "Prise de Message",
et
queles classeurs de chaque collègue portent leurs noms respectifs (celui
du
destinataire en colonne A) et qu'ils soient tous dans le même dossier.
Lafeuille, ici pour l'exemple, "Feuil1" (passée en argument que tu peux
adapter) doit avoir elle aussi 3 entêtes de colonne (le nom importe
peu)
enA, B et C (sinon, erreur :o(( )
Comme je suppose que tous les classeurs ne sont pas ouvert, la proc
utiliseADO en relation tardive (évite de cocher la référence) et elle
fonctionne dela manière suivante :
Après avoir rempli les trois champs (A, B et C), si ils ne sont pas
vide,les valeurs sont enregistrées dans le classeur portant le nom du
destinataire (colonne A) et dans la feuille "Feuil1" (à adapter). Ici
il
n'ya pas de contrôle sur les valeurs (donc si tu rentre n'importe quoi tu
auraces dernières enregistrées) ni sur les modifications qui seront dans
ce
castraitées comme de nouveaux enregistrement et donc ajoutés dans le
classeurcorrespondant. Si des modifications risque d'être faites et que tu
souhaitequ'elles soient appliquées dans le classeur correspondant il faudra
écrireun peu plus de code (SQL > UPDATE). Fais d'abords un test sur des
classeursbidons.
Ah oui, mets tout le code dans le module de la feuille "Prise de
Message" :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A:C]) Is Nothing Then
If Range("A" & Target.Row).Value <> "" And _
Range("B" & Target.Row).Value <> "" And _
Range("C" & Target.Row).Value <> "" Then
Ajout Range("A" & Target.Row).Value, _
Range("B" & Target.Row).Value, _
Range("C" & Target.Row).Value, _
"Feuil1" 'adapte le nom
End If
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Sub Ajout(Destinataire As String, _
Objet As String, _
Interlocuteur As String, _
NomFeuille As String)
Dim ConnectBD As Object
Dim ChaineSQL As String
Dim I As Integer
ConnectCLasseur ConnectBD, "D:" & Destinataire & ".xls"
ChaineSQL = "INSERT INTO `" & NomFeuille & "$`"
ChaineSQL = ChaineSQL & "(F1,F2,F3) "
ChaineSQL = ChaineSQL & "VALUES ('" _
& Destinataire & "','" _
& Objet & "','" _
& Interlocuteur & "')"
ConnectBD.Execute ChaineSQL
ConnectBD.Close
Set ConnectBD = Nothing
End Sub
Hervé.
"BlackStorm" a écrit dans le message news:Bonsoir à toutes et a tous,
Je viens vous demander votre aide. Je vous expose mon problème :
J'ai une feuille Excel dans laquelle nous archivons le suivi des
appels
téléphoniques.
Est noté dans cette feuille le nom du destinataire (collègue en
interne),l'objet de l'appel, le nom de l'interlocuteur. A des fins de suivi
qualité,je veux savoir , lorsque le message est pris, si le destinataire
interne
abien pris connaissance du message et surtout à quel moment il a
répondu.
A coté de cela, j'ai crée autant de classeur Excel qu'il y a de
collègue.Je veux que les données de la feuille Prise de Message soient copiées
automatiquement dans le classeur du collègue destinataire du message.
A
luide consulter son classeur et de le mettre à jour.
Un controle a posteriori sera fait 1 fois par semaine.
Si vous avez une solution... Merci par avance pour votre et vos
conseils...
Bonsoir JièL,
Effectivement, c'est une usine à gaz mais c'est toujours mieux que rien.
Quand tu es en panne de super 98 et que l'on te dépanne avec du 95 c'est
toujours bon à prendre et surtout, c'est mieux que de pousser non ? ;o))
Pour ce qui est du marteau, mon grand père disait "pas de bonne mécanique
sans marteau" alors, je suis à la lettre ! (et le l'emploi à tour de bras)
Salutations du gazier ;o)
Hervé.
Bonsoir JièL,
Effectivement, c'est une usine à gaz mais c'est toujours mieux que rien.
Quand tu es en panne de super 98 et que l'on te dépanne avec du 95 c'est
toujours bon à prendre et surtout, c'est mieux que de pousser non ? ;o))
Pour ce qui est du marteau, mon grand père disait "pas de bonne mécanique
sans marteau" alors, je suis à la lettre ! (et le l'emploi à tour de bras)
Salutations du gazier ;o)
Hervé.
Bonsoir JièL,
Effectivement, c'est une usine à gaz mais c'est toujours mieux que rien.
Quand tu es en panne de super 98 et que l'on te dépanne avec du 95 c'est
toujours bon à prendre et surtout, c'est mieux que de pousser non ? ;o))
Pour ce qui est du marteau, mon grand père disait "pas de bonne mécanique
sans marteau" alors, je suis à la lettre ! (et le l'emploi à tour de bras)
Salutations du gazier ;o)
Hervé.
Big merci à tous,
Je sais que c'est un peu tiré par les cheveux, mais j'ai comme application
Word & Excel. La boite ne peut pas investir, donc je fais avec les moyens du
bord et avec votre aide à tous !!
J'aurai certainement des questions complémentaires...
Big merci à tous,
Je sais que c'est un peu tiré par les cheveux, mais j'ai comme application
Word & Excel. La boite ne peut pas investir, donc je fais avec les moyens du
bord et avec votre aide à tous !!
J'aurai certainement des questions complémentaires...
Big merci à tous,
Je sais que c'est un peu tiré par les cheveux, mais j'ai comme application
Word & Excel. La boite ne peut pas investir, donc je fais avec les moyens du
bord et avec votre aide à tous !!
J'aurai certainement des questions complémentaires...
certes, j'ai toujours un marteau avec moi quand j'ouvre un PC, on sait
jamais ;-)
Ceci dit, je reste persuadé que sans bons outils on ne fait pas du bon
travail.
Mais ce n'est que mon avis, il n'engage que moi et je sais que beaucoup
font faire les pieds au mur à leur tableur préféré.
La boite ne peut pas investir, donc je fais avec les moyens du bord et
avec votre aide à tous !!
certes, j'ai toujours un marteau avec moi quand j'ouvre un PC, on sait
jamais ;-)
Ceci dit, je reste persuadé que sans bons outils on ne fait pas du bon
travail.
Mais ce n'est que mon avis, il n'engage que moi et je sais que beaucoup
font faire les pieds au mur à leur tableur préféré.
La boite ne peut pas investir, donc je fais avec les moyens du bord et
avec votre aide à tous !!
certes, j'ai toujours un marteau avec moi quand j'ouvre un PC, on sait
jamais ;-)
Ceci dit, je reste persuadé que sans bons outils on ne fait pas du bon
travail.
Mais ce n'est que mon avis, il n'engage que moi et je sais que beaucoup
font faire les pieds au mur à leur tableur préféré.
La boite ne peut pas investir, donc je fais avec les moyens du bord et
avec votre aide à tous !!
nb: notre DI était également président du CIGREF
http://minilien.com/?nZwDE8908G
nb: notre DI était également président du CIGREF
http://minilien.com/?nZwDE8908G
nb: notre DI était également président du CIGREF
http://minilien.com/?nZwDE8908G