Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
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 17/08/2011, 14h15   #1
Invité de passage
 
Christophe Baligout
Inscription : août 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Christophe Baligout

Informations forums :
Inscription : août 2010
Messages : 6
Points : 0
Points : 0
Par défaut insérer un signet dans word à partir d'Excel

Bonjour à tous,

Je suis bloqué depuis plusieurs jours sur ce problème.
Mon objectif est :
1)d'insérer dans word un texte à partir d'excel : ça marche.
2)de créer un signet soit prenant tout mon texte inséré (idéal) soit devant le texte inséré : là ça ne marche pas.

Le signet devra être nommé en référence à une cellule nommé (ex:date11082011) cela marche dans word mais me met nom de signet incorrect à partir d'excel...
Code :
1
2
3
4
5
6
 
      If testeur = paradat.Range.Text Then 
'le test ne renvoie pas oui quand c'est le cas (donnée string)
        WordDoc.Bookmarks.Add Sheets("Mémoire").Range("N12").Value
'nom de signet incorrect
        End If
Merci d'avance pour votre aide.
kristoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 18h52   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

En mode debug quel est le contenu de value, n'est-ce pas un format date?
Code :
Sheets("Mémoire").Range("N12").Value
Est-ce qu'il ne faut pas concaténer date devant ou supprimer des espaces?
Code :
"date" & Sheets("Mémoire").Range("N12").Value
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h41   #3
Invité de passage
 
Christophe Baligout
Inscription : août 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Christophe Baligout

Informations forums :
Inscription : août 2010
Messages : 6
Points : 0
Points : 0
Bonjour Christophe,

Merci pour ta réponse.

Effectivement ma cellule N12 est au format : "date"jjmmaaaa

j'ai rentré ce que tu ma conseillé en concaténant et lorsque la variable se charge elle a pour valeur : datejj/mm/aaaa . Du coup les / bloque la création du signet...

Une idée?

Merci d'avance

Christophe
kristoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 17h09   #4
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Utiliser la fonction Replace sur ta variable
Code :
Replace(variable,"/","")
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/08/2011, 23h15   #5
Invité de passage
 
Christophe Baligout
Inscription : août 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Christophe Baligout

Informations forums :
Inscription : août 2010
Messages : 6
Points : 0
Points : 0
Bonsoir,

C'est réglé pour créer le signet grace à Christophe. Par contre, Le test if ne renvoie jamais vrai et pourtant lorsque je mets une pause égalité est là...

Merci à Christophe en tous cas pour la fonction replace que je ne connaissais pas

Bonne soirée

Christophe
kristoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 23h23   #6
Invité de passage
 
Christophe Baligout
Inscription : août 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Christophe Baligout

Informations forums :
Inscription : août 2010
Messages : 6
Points : 0
Points : 0
Code :
1
2
3
4
5
6
7
8
9
    testeur = Sheets("Mémoire").Range("N11").Value & " - " & Sheets("Mémoire").Range("O3").Value & " :"
    For Each paradat In WordDoc.Paragraphs
        If testeur Like Trim(paradat.Range.Text) Then 'ne renvoie jamais vraie
        bookdate = "date" & Sheets("Mémoire").Range("N13").Value
        Sheets("Mémoire").Range("N12").Value = Replace(bookdate, "/", "")
        bookdate = Sheets("Mémoire").Range("N12").Value
        WordDoc.Bookmarks.Add bookdate, paradat.Range
        End If
    Next paradat
avec le code ça peut aider...
kristoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 13h45   #7
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

L'opérateur Like est sensible à la casse.
Est-ce que tu peux nous mettre le contenu de Trim(paradat.Range.Text) et celui de testeur.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 01h16   #8
Invité de passage
 
Christophe Baligout
Inscription : août 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Christophe Baligout

Informations forums :
Inscription : août 2010
Messages : 6
Points : 0
Points : 0
Bonsoir,

quand la condition est vrai :
testeur= "01/09/2011 - de 9h00 à 10h15 :"
et
trim(paradat.Range.Text)= "01/09/2011 - de 9h00 à 10h15 :"

like et = posent le même problème.

merci
kristoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 09h07   #9
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Une idée, est-ce que tu peux vérifier d'avoir exactement les mêmes caractères dans le code ASCII par exemple (Le tiret n'est peut-être pas le même).
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 22h34   #10
Invité de passage
 
Christophe Baligout
Inscription : août 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Christophe Baligout

Informations forums :
Inscription : août 2010
Messages : 6
Points : 0
Points : 0
Bonsoir Christophe,

Désolé pour l'absence. Je ne trouve pas comment récupérer ASCII sur internet mais cela pourrais venir de là lors du passage de excel à word.
Sais-tu comment faire? JE ne trouve rien sur internet depuis 2 jours. (mauvaise dénomination dans la recherche je pense.

Merci

Cordialement
Christophe
kristoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 00h05   #11
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonsoir,
Voici un bout de code rapidement réalisé qui indique si deux chaines sont identiques en comparant les caractères un à un dans le code ASCII.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub comparechainecodeascii(montexte As String, montexte2 As String)
Dim i As Integer
i = 1
While i < Len(montexte) And Asc(Mid(montexte, i, 1)) = Asc(Mid(montexte2, i, 1))
Debug.Print Asc(Mid(montexte, i, 1))
i = i + 1
Wend
If i < Len(montexte) Then
MsgBox "Le premier caractère différent est à la position " & i & "soit " & Mid(montexte, i, 1)
Else
MsgBox "les deux chaines sont identiques"
End If
End Sub
Il donne à la fin si les deux chaines sont identiques ou pas en spécifiant la position qui change et le caractère correspondant de la première chaine.

La fonction mid permet de couper une chaine de caractère et la fonction ASC donne le code ASCII correspondant à un caractère.
La fonction Len calcule la longueur d'une chaine de caractère.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h55.


 
 
 
 
Partenaires

Hébergement Web