Pages

Affichage des articles dont le libellé est déjà. Afficher tous les articles
Affichage des articles dont le libellé est déjà. Afficher tous les articles

[AC-2010] Empêcher toute modification des enregistrements déja saisies et sauvegardés sujet

mardi 8 avril 2014




Bonjour tout le monde,

J'ai remarqué qu'on peut modifier des enregistrements sur un formulaire qu'on déjà saisi et sauvegardé?

Comment empêcher SVP la modification de tout enregistrement qu'on déjà saisi et validé ?

Merci bien




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




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










Actualité - Le premier traducteur dauphin-humain a peut-être déjà fonctionné sujet

vendredi 28 mars 2014




Denise Herzing travaille depuis 25 ans sur la mise au point d’un ordinateur capable de traduire les sifflements des dauphins en sons humains. Bien qu’il reste encore très basique, il aurait repéré...

Lire la suite : Le premier traducteur dauphin-humain a peut-être déjà fonctionné




grid check si un control est déjà présent sujet

jeudi 27 mars 2014




Bonjour,
je cherche une méthode pour contrôler dans un grid si un contrôle est déjà présent pour ne pas en ajouter un par dessus.
Dans ce grid il y a des contrôles qui sont sur plusieurs colonnes. Je peux déjà voir si un contrôle est dans une cellule mais quand il y a un contrôle sur plusieurs lors du check de la colonne suivant, je ne vois rien.
Voici le bout de code que j'utilise
Des idées??

Merci


Code:


1
2
3
4
5
6
7
8
9
10
11
12
13

bool trou = false;
foreach (UIElement element in GridW.Children)
{
if (Grid.GetRow(element) == Grid.GetRow(ctrl))
if (Grid.GetColumn(element) == Grid.GetRow(ctrl))
trou = true;
break;
else
trou = false;
}
}
if (trou == true) MessageBox.Show("er"); else MessageBox.Show("ok");






XL 2007 Choix d'un nombre en fonction de nombre deja utilisés sujet

vendredi 31 janvier 2014




Bonjour,

Je recherche une formule me permettant de mettre un nombre dans une cellule en fonction de précédentes cellules remplies et à une condition.
je m'explique:

colonne A colonne B
ligne 1 FOND 1
ligne 2 FORME 1
ligne 3 FOND 2

je voudrais qu'en ligne 4 si l'utilisateur du fichier choisi FORME en colonne A (menu déroulant) , 2 apparaisse
automatiquement en colonne B. Je souhaiterais étendre la formule ensuite.
j'ai combiné la formule MAX avec SI mais je dois ensuite valider en matricielle. et je voudrais éviter une validation matricielle. J'espère avoir été claire
Merci d'avance pour les réponses




XL 2010 Récupérer le numéro d'une ligne déjà sélectionnée sujet

jeudi 30 janvier 2014




Bonjour à tous

Je désirerais quand j’ai sélectionné une ligne d'un tableau, lancer une macro qui me permettra d’insérer automatiquement dans ce même tableau, une ligne vide qui se situera juste au dessus de celle sélectionnée, puis de remplir une cellule avec une fonction qui se trouve dans une cellule prédéfinie, au moyen d’un copier dans la copier-coller.

J’ai déjà "écrit" le code très simple suivant qui me permet uniquement d’insérer une ligne vide dans mon tableau.
Vous le trouverez dans le fichier joint. C’est dans ce code que je désire insérer la macro.
------------------------
Private Sub CommandButton1_Click()
'
' Insére une ligne vide au dessus de la ligne sélectionnée
'
Selection.Insert Shift:=xlDown
End Sub
-------------------------
Maintenant dans cette nouvelle ligne vide, je voudrais copier dans la cellule FX (X étant le numéro de la ligne nouvellement créée située au dessus de celle initialement sélectionnée) le contenu d’une cellule prédéfinie : F4. Cette cellule contient une fonction "CONCATENER" et se trouve dans la même feuille que le reste de mon tableau.

Je suppose que je peux le faire au moyen d’un "copié" du contenu de la cellule F4 suivi d’un "collé" de ce même contenu dans ma nouvelle cellule FX.

Mon problème est que ne sais pas comment récupérer la valeur de la ligne sélectionnée c’est à dire X.
Je ne sais pas non plus exploiter le numéro de ligne pour faire ce "copié-collé" dans une macro.
Pouvez-vous m’aider sur ce point ?
Merci d’avance

Thierry













Fichiers attachés








[WD-2013] Dans un publipostage comment personnaliser une liste d'adresses déjà créée sujet

mercredi 29 janvier 2014




Bonjour à tous,
Avec un publipostage Word 2003, puis "Modifier la liste de destinataires" et "Personnaliser colonnes" on pouvait facilement ajouter de nouvelles colonnes dans une base de données .mdb.
Avec un publipostage Word 2013, "Modifier la liste de destinataires" donne seulement accès à une boîte de dialogue avec "Trier", "Filtrer", etc.
Comment faire pour effectuer cette simple manipulation ?
D'avance, merci beaucoup pour votre réponse.
bolide7