Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/09/2011, 18h20   #1
Membre du Club
 
Inscription : mai 2010
Messages : 36
Détails du profil
Informations personnelles :
Âge : 61
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2010
Messages : 36
Points : 45
Points : 45
Par défaut analyse d'une ligne de code vba

Bonjour à tous

Quelqu'un peut-il m'aider ? Dans le cadre d'une base, qui a pour objet de documenter une base access (liste des objets, des champs, de leurs propriétés,...) et d'analyse du code, j'ai besoin de séparer une ligne en plusieurs parties, c'est-à-dire :
1- séparer une ligne en 2 s'il existe ":" en milieu de ligne (ce n'est pas très lisible mais ...)
2- identifier le commentaire de fin de ligne
3- identifier le message et le titre d'une 'MsgBox'

Je rencontre des difficultés du fait que l'on peut rajouter des virgules ou des point entre guillemets.

Voici un exemple :
Code :
MsgBox "Bonsoir" & " , " & "Au revoir", vbYesNo + vbDefaultButton1, "Titre : " & "Ma base : une base Access 2007": Exit Sub  '  Exemple
Quelqu'un porrait-il m'aider ou me donner une piste (je galère même avec les fonctions 'Instr' et 'Split')

Merci
Nourson
Nourson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 20h29   #2
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonsoir,
le : ou les , à considérer sont toujours après un nombre paire de "
une fonction pourrait faire l'affaire
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Function PosCar(texte As String, depart As Long, car As String) As Long
 If (depart < 1) Or (depart > Len(texte)) Then Exit Function
 Dim i As Long, j As Long
 PosCar = 0
 For i = depart To Len(texte)
  c = Mid$(texte, i, 1)
  Select Case c
  Case """"
   j = j + 1
  Case car
   If (j Mod 2) = 0 Then PosCar = i: Exit For
  End Select
 Next i
End Function
en paramètre la chaine de caractère, la position où commence la recherche et enfin le caractère à chercher
pour l'exemple

Code :
1
2
3
4
5
6
7
8
9
10
 
Sub test()
 s = "MsgBox ""Bonsoir"" & "" , "" & ""Au revoir"", vbYesNo + vbDefaultButton1, ""Titre : "" & ""Ma base : une base Access 2007"": Exit Sub  '  Exemple"
 n = PosCar(s, 1, ":")
 Debug.Print "position de : " & n
 n = PosCar(s, 1, ",")
 Debug.Print "position de , " & n
 n = PosCar(s, n + 1, ",")
 Debug.Print "position de , " & n
End Sub
dans s les " doivent être doubler
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 09h31   #3
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 089
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 089
Points : 11 622
Points : 11 622
Bonjour,
tu peux également utiliser les expressions régulières. Il y a un tuto sur le sujet.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 12h05   #4
Membre du Club
 
Inscription : mai 2010
Messages : 36
Détails du profil
Informations personnelles :
Âge : 61
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2010
Messages : 36
Points : 45
Points : 45
Merci à tous les deux.
Avec vos réponses, je peux poursuivre.
Nourson
Nourson est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h37.


 
 
 
 
Partenaires

Hébergement Web