Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
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 22/06/2011, 09h38   #1
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
Par défaut Export de données Word vers Excel

Bonjour,

J'ai un document Word sur lequel j'ai utilisé des cases à cocher (onglet développeur) en face desquelles j'ai simplement écrit du texte.

Je souhaiterais savoir s'il était possible d'exporter le texte inscrit en face des cases qui auront été cochées ?

Par exemple :


Exporter dans Excel :

texte 1
texte 3


Merci d'avance de toute aide
Mickael013 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 10h41   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 226
Points : 29 226
Salut,

Tu peux exporter le tout et faire un tri en Excel.
Ou travailler en VBA pour n'exporter que ce qui est sélectionné.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 14h27   #3
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
En fait j'ai des cases à cocher devant du texte (pré-écrit)
Et des cases à cocher devant des champs à remplir (formulaire)

Il y en a pas mal, même si j'ai quelques notions de tout ce qui est lié à la programmation, VBA m'est encore étranger. Si tu avais un lien vers un paragraphe, un pdf ou une partie d'un site pouvant m'être utile / ou le nom des fonctions pouvant m'être utile ? J'ai cru voir un lien en fin de ton message vers les explications VBA, quelle partie me serait utile ? (tout ? ^^)

Merci d'avance.

Cordialement,
Mickael013 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 18h51   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 226
Points : 29 226
Salut,

Une idée : http://heureuxoli.developpez.com/off...d/formulaires/
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 17h26   #5
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
J'ai commencé à tenter de par un clic sur un bouton de créer un document excel.

Code :
1
2
3
4
5
6
7
8
9
 
Sub BoutonFermer_Click()
Dim docExcel As Object
Dim appExcel As Object
Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = True
Set docExcel = appExcel.Documents.Add
 
End Sub
J'aimerais insérer au sein de chaque cellule de la première colonne du texte si une case est cochée. D'après ce que j'ai compris, il me faut créer une fonction pour chacune des cases avec une condition If

If Case1 (est cochée) alors mémoriser dans une variable le texte que je veux

Si j'ai bien compris je dois seulement mémoriser dans une variable et ensuite dans la fonction reliée à mon bouton je dirai d'insérer les variables dans les cases (car ma feuille excel ne sera pas créée encore)

Je veux bien un peu d'aide si quelqu'un le sens

Merci.
Mickael013 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 20h24   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 226
Points : 29 226
Salut,

1, 2, 3, on y va.

Dans ton code, tu déclares des objets, c'est un pas, mais il est plus facile surtout lorsqu'on débute de passer par des objets plus précis ou pluls typés.

Code :
1
2
3
4
5
6
7
8
Dim xlApp As Excel.Application
Dim xlWB as Excel.WorkBook
Dim xlWS as Excel.WorkSheet
 
Set xlApp = New Excel.Applcation
Set xlWB = xlApp.WorkBooks.Add
Set xlWS = xlWB.WorkSheets.Add
 ....
Il faut ajouter la référence à la bibliothèque Excel à ton Projet.
Outils => Références => Microsoft Excel

De cette manière, tu pourras bénéficier de l'intellisense qui est une sorte d'aide à la saisie.

Par contre :
Citation:
If Case1 (est cochée) alors mémoriser dans une variable le texte que je veux
Pourquoi mettre dans une variable ?

Point besoin de faire un test supplémentaire.

Case1 à deux états : Vrai ou Faux, si tu fais un test supplémentaire du genre

Code :
If Case1 = True Then ...
Si la valeur de Case1 est vraie, on renvoie une valeur vraie, c'est plus facile de traiter le résultat de case1 sans faire de test.

Dans l'exemple que je donne, la feuille Excel est créée lorsque la procédure est lancée, on peut alors utiliser la feuille Excel, mais le problème, c'est qu'elle n'est disponible que dans cette procédure.
On peut alors sortir la déclaration des variables de la procédure pour pouvoir utiliser cette variable dans d'autres procédures.

http://heureuxoli.developpez.com/office/word/vba-all/

http://heureuxoli.developpez.com/off.../?page=page5#5
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 00h12   #7
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
Merci, vraiment, pour tous les conseils. Je découvre...

Par contre si dans mon code je mets :
Meme si la case est cochée cela ne passe pas dans le Then

Si par contre je mets
Code :
If ActiveSheet.Ckb1 Then ...
Cela donne une erreur : "objet requis"

Je ne comprends toujours pas comment utiliser dans le If ma case a cocher (à moins que ce soit du a une autre erreur ?)

Juste pour info (je partage ma magnifique réalisation pas du tout optimisée)
J'ai un petit peu remodelé le code pour créer simplement un tableau directement dans Word pour moins me compliquer :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Sub BoutonFermer_Click()
Dim data(1 To 50, 1 To 1) As String
Dim presentation As Table
Dim i As Byte
Dim j As Byte
Dim k As Byte
 
i = 1
If ActiveSheet.Ckb1 Then
data(i, 1) = "texte 0"
i = i + 1
End If
 
If Ckb2 = True Then
data(i, 1) = "texte 1"
i = i + 1
End If
 
If Ckb3 = True Then
data(i, 1) = "texte 2"
i = i + 1
End If
 
If Ckb4 = True Then
data(i, 1) = "texte 3"
i = i + 1
End If
 
If Ckb5 = True Then
data(i, 1) = "texte 4"
i = i + 1
End If
 
j = i
 
Set presentation = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=j, NumColumns:=1)
 
For k = 1 To j
presentation.Cell(k, 1).Range.Text = data(k, 1)
Next k
 
With presentation
.AutoFitBehavior (wdAutoFitContent)
.Sort ExcludeHeader:=True, FieldNumber:="Colonne 1"
.Style = "Grille du tableau"
.Rows.Alignment = wdAlignRowCenter
 
 
End With
 
 
End Sub
Mickael013 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 09h53   #8
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
En fait, une fois que j'active la protection, et que je coche une case, celle-ci ne semble pas être considéré comme active car :

Code :
1
2
3
 
m = Ckb2
MsgBox m
Renvoie Faux alors que la case est bien cochée.



Rassurez moi, le nom de la case, c'est bien ce que j'ai renseigné dans "signet" en faisant un clic droit et propriété ?
Et je peux utilisé les cases à cocher "Formulaires hérités" ?
Mickael013 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 10h58   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 226
Points : 29 226
Salut,

C'est normal que tu aies une erreur, ckb2 n'est pas un objet correctement défini.


Je ne sais pas sur base de ta copie d'écran déterminer le code à utiliser.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 12h04   #10
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
Si tu t'es référé au dernier message c'est normal : c'est juste un test que j'avais fait au milieu de mon code global.
(je ne sais pas si tu as fait attention, j'avais posté 2 messages à la fois)

(Ckb... sont des cases à cocher présentes dans Word 2007 que j'ai ajouté grace à : Menu > Developpeur > Formule héritée > Case à cocher)
Ensuite je fais un clic droit et Propriété et je renseigne le Paramètre de Champ : signet : Ckb1)
Je ne sais pas si ma manière de les appeler est correcte.

renvoie Faux même si la case est cochée et ne passe donc jamais dans le Then.


Mon code est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Sub BoutonFermer_Click()
Dim data(1 To 50, 1 To 1) As String
Dim presentation As Table
Dim i As Byte
Dim j As Byte
Dim k As Byte
 
i = 1
If Ckb1 Then
data(i, 1) = "texte 0"
i = i + 1
End If
 
If Ckb2 = True Then
data(i, 1) = "texte 1"
i = i + 1
End If
 
If Ckb3 = True Then
data(i, 1) = "texte 2"
i = i + 1
End If
 
If Ckb4 = True Then
data(i, 1) = "texte 3"
i = i + 1
End If
 
If Ckb5 = True Then
data(i, 1) = "texte 4"
i = i + 1
End If
 
j = i
 
Set presentation = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=j, NumColumns:=1)
 
For k = 1 To j
presentation.Cell(k, 1).Range.Text = data(k, 1)
Next k
 
With presentation
.AutoFitBehavior (wdAutoFitContent)
.Sort ExcludeHeader:=True, FieldNumber:="Colonne 1"
.Style = "Grille du tableau"
.Rows.Alignment = wdAlignRowCenter
 
 
End With
 
 
End Sub
Mickael013 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 12h40   #11
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 226
Points : 29 226
Salut,

C'est plus simple si ce sont des contrôles de formulaire.

Voilà un peu de lecture : http://heureuxoli.developpez.com/off...d/formulaires/
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 13h58   #12
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
D'après le paragraphe 2-B. Word 2007
du lien que tu viens de me donner c'est exactement ce que j'ai fait...

En fait, quand est ce que la case à cocher passe en mode "vrai" ? Quand je protege mon document et que je clique dessus pour la cocher? Sa valeur passe de Faux à Vrai ? Y a t il une règle au niveau des majuscule pour le nom de la case ?
Mickael013 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2011, 20h31   #13
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 226
Points : 29 226
Salut,

On récupère la valeur du contrôle avec

Code :
ActiveDocument.FormFields("MaCheckBox").Result
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli 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 23h04.


 
 
 
 
Partenaires

Hébergement Web