Pages

Affichage des articles dont le libellé est Récup. Afficher tous les articles
Affichage des articles dont le libellé est Récup. Afficher tous les articles

XL 2003 Récup PJ Outlook mais ne pas retraiter celles déjà faites... sujet

mardi 8 avril 2014




Bonjour à tous,

je suis face à un problème que je ne parviens pas à résoudre...
Je vous explique rapidement ma situation:
  1. J'ai un code qui va me récupérer toutes les pièces jointes des mails d'un sous-dossier nommé Retour
  2. J'ai un autre code qui va, une fois les PJ enregistrées, détecter les fichiers Excel, les ouvrir et s'ils répondent à certaines conditions recopier certaines valeurs, enregistrer au format voulu et sauvegarder
  3. On passe ensuite à la PJ suivante
Tout ça marche nickel mais c'est long car j'ai plus de 300 fichiers pour l'instant et je devrais monter jusqu'à 600...

Du coup me suis dit, au lieu de tout reprendre à 0 à chaque fois, je vais faire une liste des PJ "*.xls" en début de code (avant la récup des PJ), puis faire la récup des PJ (qui réécrira avec le même nom les PJ déjà présentes et ajouter les nouvelles) puis faire une nouvelle liste des PJ avec un recherchev entre les 2 pour détecter celles présentes dans la 2ème liste et non dans la 1ère pour ne rajouter que celles-ci...


Problème, le code de récup étant assez complexe, je ne parviens pas à le mixer avec les listes des fichiers...

Du coup, j'obtiens un message d'erreur (cf copie d'écran)...
Sur le code suivant :

Code vba:


Option Explicit
'------------------------------------------------------------------------
'Nécessite d'activer la référence Microsoft Outlook xx.xx Object Library
'------------------------------------------------------------------------

 
Dim x As Integer
Dim Dossier, Dossier2

    'La boite de réception, la boite des éléments supprimés et tous leurs
   'sous dossiers sont pris en compte.
Sub ExportePiecesJointes()
    Dim Ol As New Outlook.Application
    Dim Ns As Outlook.Namespace
    Dim Dossier As Outlook.MAPIFolder
 
    Set Ns = Ol.GetNamespace("MAPI")
    Set Dossier = Ns.Folders(1)
 'MsgBox Dossier

    SearchFolders Dossier
    x = 0
   
    MsgBox "Fichiers chargés"
End Sub
 
 
Private Sub SearchFolders(ByVal fld As Outlook.MAPIFolder)
Dim y As Integer
Dim OLmail 'As Outlook.MailItem
Dim pceJointe As Outlook.Attachment
Dim SousDossier As Outlook.MAPIFolder
 
For Each SousDossier In fld.Folders
'With fld.Folders
'.Item("Retours").Items
   If SousDossier.DefaultItemType = 0 And SousDossier.Name = "Retours" Then
        For Each OLmail In SousDossier.Items
            If Not OLmail.Attachments.Count = 0 Then
                For y = 1 To OLmail.Attachments.Count
                'MsgBox SousDossier.Name
                    Set pceJointe = OLmail.Attachments(y)
                     x = x + 1
                     
                     'l'erreur apparaît là alors que ça marche quand je ne fais que ce code!!
                    pceJointe.SaveAsFile Dossier & x & "_" & pceJointe
                   
                    Set pceJointe = Nothing
                Next y
            End If
        Next OLmail
    End If
    SearchFolders SousDossier
Next SousDossier
'MsgBox x & " fichiers enregistrés"
End Sub



Le code pour lister les PJ :

Code vba:


Dim Chem, NF2

Sub t1()
With Sheets("Accueil")
.Range("r2:r65000").ClearContents
Chem = "C:\Documents and Settings\thibault.spreux\Bureau\Compta Ana\Gestion des temps\PJ Mails"
ChDir Chem
.Range("r2").Select
NF2 = Dir("*.xls")
    Do While NF2 <> ""
        ActiveCell = NF2
        ActiveCell.Offset(1, 0).Select
        NF2 = Dir
    Loop
End With
End Sub




Je ne sais pas du tout comment faire, si qq1 a une idée je suis preneur...

D'avance Merci











Images attachées










Requete SQL basée sur récup d'une comboBox utlisant plusieurs champs. sujet

vendredi 28 mars 2014




Bonjour,

Voici le contexte :

Je fait un programme en java qui est lié à une base de donnée MySQL.

J'ai 1 comboBox qui affiche pleins de lignes "nom prenom ville" récupérés dans 3 champs d'une base MySQL et assemblés de sorte de n'avoir qu'une seule String par ligne.
Lorsque l'utilisateur sélectionne un "nom prenom ville" et qu'il clique sur un bouton "afficher", je souhaite aller chercher dans cette même base MySQL toutes les données (donc "nom, prenom, adresse, ville, mail, tel1, tel2") où les champs "nom", "prenom" et "ville" sont identiques à ceux sélectionnés dans la comboBox. Dans le but ensuite de les afficher dans des champs textes.

Je rencontre un problème pour écrire, dans un programme en java, une requête SQL qui a pour but de récupérer les données dont les champs "nom prenom ville" ont été sélectionnés par le copmboBox.

Voici quelques lignes de code (je pense avoir mis le plus important en relation avec le problème) que j'ai écris, je pense que mon erreur est dans la requête :


Code:


1
2
3
4

if (commande.equals("Afficher")){
String strTextRechClient = (String)comboClients.getSelectedItem();
System.out.println("valeur de la comboClients : " + strTextRechClient);


et puis

Code:


1
2
3
4
5
6

try{
ResultSet resultat = statement.executeQuery("SELECT nom, prenom, adresse, ville, mail, tel1, tel2 FROM client WHERE CONCAT(nom, prenom, ville) = " + strTextRechClient + ";");
}
catch ....
}






[CR 2008] formule dans expert Groupe pour récup nom de champ ou variable sujet

jeudi 27 mars 2014




Bonjour,
Peut-on imaginer le cas suivant , que je simplifie à l'extrême toutefois :
J'ai un groupe basé par ex. sur un code client, et en dessous d'autres groupes et sections liées à ce client avec du détail, des formules, des totalisations, etc ... donc pas mal d'infos.
Je voudrais pouvoir lorsque mon dernier client a été traité repartir sur la même base de présentation, en "continuité", comme si je lançais une 2ème fois le traitement, (mêmes formules, mêmes calculs, mêmes groupes et sections...) mais en faisant une substitution au niveau du groupe "client" comme dans l'exemple hyper simplifié ci-dessous :
Client A (france) / article 100 ... cumul lignes qté 10
Client A (france) / article 200 ... cumul lignes qté 5
Client B (export) / article 100 ... cumul lignes qté 20
Client B (export) / article 300 ... cumul lignes qté 10
Client C (france) / article 100 ... cumul lignes qté 10
+
Client "france" / article 100 ... cumul lignes qté 20
Client "france" / article 200 ...cumul lignes qté 5

J'ai essayé de baser mon groupe "client" sur une formule dans l'expert groupe, pour lui dire grosso modo que le client traité dans le groupe est soit le "vrai" client de la table, soit le client virtuel "france" (gràce à un flag qui me permet de savoir que j'ai terminé de traiter tous les clients de la table). J'ai donc fait une formule qui ressemble en simplifié à ça :
if (codcli="A" ou "C") and flag=1 then champ="france" else champ=codcli ...
Le pb c'est que ça plante avec "nom de champ invalide" car j'ai l'impression qu'au niveau de la formule de l'expert groupe il n'accepte que des champs de table et pas des variables.

Par contre, je ne souhaite pas partir sur un sous-rapport, car cela va m'obliger à refaire à l'identique toute la présentation, les formules, les groupes et sections liées au groupe "client" ... en +, ça me semble balot de tout dédoubler à l'identique alors qu'il doit bien y avoir une astuce pour retraiter exactement les mêmes infos, juste au final pour sortir un regroupement complémentaire des mêmes infos.
J'ai peut-être pas été très clair, mais c'est vrai que si la problématique est simple en soi, elle n'est pas facile à expliquer.
Merci d'avance de vos idées sur la manière dont vous traiteriez ce genre de cas.