Problème de selection

Résolu
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007 - 26 avril 2007 à 09:52
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 26 avril 2007 à 23:13
Bonjour,
j'ai un problème de selection avec word sous une macro de ACCESS.
En fait je fais des selections sous un doc word, grâce à des signets.
Mais lorsque ma selection est vide, c'est à dire que rien n'a été écrit dans le doc word.
Et lorsque cette selection est vide, je voudrais faire un if, end if.
Le code pour mieux comprendre:

          If Wd.ActiveDocument.Bookmarks.Exists("dcréa") = True Then
            Wd.ActiveDocument.Bookmarks("dcréa").Select
          End If
'Pour affiner la selection sur une seule ligne
          Call Wd.Selection.MoveDown(wdLine, 1, wdExtend)
          Call Wd.Selection.MoveLeft(wdCharacter, 4, wdExtend)
          If Wd.Selection <> "" Then
            Wd.Selection.Copy
            d1 = Wd.Selection
          End If
          If Wd.ActiveDocument.Bookmarks.Exists("dmaj") = True Then
            Wd.ActiveDocument.Bookmarks("dmaj").Select
          End If
'Pour affiner la selection sur une seule ligne
          Call Wd.Selection.MoveDown(wdLine, 1, wdExtend)
          Call Wd.Selection.MoveLeft(wdCharacter, 3, wdExtend)
          If Wd.Selection <> "" Then
            Wd.Selection.Copy
            dmaj = Wd.Selection
          End If

En fait le "If Wd.Selection <> "" Then" ne fonctionne pas, j'ai essayé un IsNull(Wd.Selection),
Wd.Selection <> vide.

Rien ne marche.
Merci de votre aide.

19 réponses

aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 15:01
Après plus d'une heure de recherche intensive, j'ai finit par trouver la solution :

                            If Wd.ActiveDocument.Bookmarks.Exists("dmaj") = True Then
                                Wd.ActiveDocument.Bookmarks("dmaj").Select
                            End If
                            Call Wd.Selection.MoveDown(wdLine, 1, wdExtend)
                            Call Wd.Selection.MoveLeft(wdCharacter, 3, wdExtend)
                            dmaj = Wd.Selection
                            'Si dmaj est une date sinon null
                            If IsDate(dmaj) = False Then
                                dmaj = "Null"
                            End If

Comme c'est une date, je teste son format.

Si ce n'était pas une date, il aurait fallu mettre :
                            If Asc(Trim(dmaj)) = vbCrLf Then
                                dmaj = ""
                            End If
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 10:05
Salut,

Je vais peut-être dire une bêtise, et vous demande par avance de m'excuser, essaye cela :

If Wd.Selection = VbNullString Then

A+
Exploreur

 
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 10:21
Ca marche Explorer, il a réponse à pratiquement tout lui.
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 10:33
En fait ça marche pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 10:34
Salut,

Merci pour ta réponse, mais je n'ai pas toujours la réponse à tout problème....A+
Exploreur

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 10:36
Tu vois....lol

A+
Exploreur

 
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
26 avril 2007 à 10:38
Salut est ce que la selection Wd.Selection correspond à une seule cellule?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 10:40
En fait ça marche pas parce que vbnullstring = "", et comme je n'ai pas de texte dans ma ligne, je n'ai rien du tout selectionné. Ce n'est pas égale à "".
Ce qu'il me faudrait c'est savoir si le premier caractère est égale à "". Je fais donc ça :

          If Wd.ActiveDocument.Bookmarks.Exists("dmaj") = True Then
            Wd.ActiveDocument.Bookmarks("dmaj").Select
          End If
          Call Wd.Selection.MoveRight(wdCharacter, 1, wdExtend)
          If Wd.Selection <> vbNullString Then
            Call Wd.Selection.MoveDown(wdLine, 1, wdExtend)
            Call Wd.Selection.MoveLeft(wdCharacter, 3, wdExtend)
            Wd.Selection.Copy
            dmaj = Wd.Selection
          End If

Le truc, c'est comme je suis dans un tableau et que ma ligen est vide, cela me selectionne la ligne du tableau et non un seul caractère, ce qui rend le           Call Wd.Selection.MoveRight(wdCharacter, 1, wdExtend)
          If Wd.Selection <> vbNullString Then
inefficace.
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 10:42
Je ne comprends pas ta question Drikce 06.
Je suis sous access et word, non sous excel
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
26 avril 2007 à 10:44
Ha ok autant pour moi!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 10:47
Salut,

Donc quand il y a rien dans ton tableau tu as un caractère de substitution qui est " ", et c'est cela que tu veux récupèrer ?

A+
Exploreur

 
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 10:59
En fait quand j'ai rien dans mon tableau, j'arrive à récupérer la ligne entière du tableau.
Il n'y a aucun caractère à l'intèrieur de la ligne.
Voilà ce que j'ai
Date<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

,  

 

Si c'est comme ça, je fais rien

Date

, 19/04/07

Si c'est comme ça je récupère la date.
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 11:10
Salut,

Bon , je viens de faire un essai avec un textbox et cela fonctionne, voici :

If Not (Text1.Text = vbNullString) Then
       MsgBox "Je ne suis pas vide"
Else
       MsgBox "je suis vide"
End If

A+
Exploreur

 
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 11:21
Non ça ne marche pas, tu as essayé avec un tableau? Parce que en fait il n'y a pas de caractères selectionnés.
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 11:23
Pour répondre à ta question :
Donc quand il y a rien dans ton tableau tu as un caractère de substitution qui est " ", et c'est cela que tu veux récupèrer ?

Il n'y a pas de caractère de substitution.
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 11:25
Voilà le caractère que j'ai lorsque il n'y a rien dans ma ligne, mais je n'arrive pas à le tester.
Les caractères sont en copier coller grâce à un espion :

"
�7;"
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 avril 2007 à 12:20
Salut,

A défaut(et je suis désolé) de pouvoir t'aider plus, regarde ce lien

A+
Exploreur

 
0
aaliyan Messages postés 104 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 30 avril 2007
26 avril 2007 à 15:37
Petite modification, j'ai oublié, c'est Asc(vbCrLf) qu'il faut mettre
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
26 avril 2007 à 23:13
Par curiosité as-tu essayé
If IsEmpty(Selection)
ou
If Len(Selection)=0

simple curiosité parce que je ne travaille jamais avec Word et très très rarement sous Access pur.

MPi
0
Rejoignez-nous