begin process at 2012 02 15 20:31:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

boucle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

boucle

mercredi 11 août 2004 à 10:05:12 | boucle

Esprit44

SAlut tout le monde

j ai un bout de code mais qui faut l avouer n'est pas vraiment optimisé
je vous explique ce qui va suivre
Un user coche des checkbox. Il peut en cocher le nombre qu il veut, le but etant de selectionner le nb de paragrahe qu il souhaite faire apparaitre dans son nouveau doc word ( par copier/coller). actuellement, le code que j ai fait, fonctionne mais j aimerais le simplifier avec une boucle eventuellement de sorte que lorsque je rajoute de nouveaux paragraphes je n ai pas a rajouter ce code. est ce possible ? si oui comment? parceque si j ai 20 paragraphes ca va faire bcp de ligne pour pas grand chose!! donc si il possibilité de simplifier ca merci!!

Merci pour l aide que vous pourrez m apporter

ChRiS


Voici le bout code

Dim MonDocument As String
MonDocument = Documents.Add
DocTravail.Value = MonDocument

If CheckBox1.Value Then
Documents("source.doc").Activate
Selection.HomeKey Unit:=wdStory
With Selection.Find
.ClearFormatting
.Text = "<§1>"
.MatchWildcards = 0
.Forward = 1
.Replacement.Text = ""
.Replacement.ClearFormatting
.Execute ' recherche du mot1
Selection.MoveRight 'déplacement a droite du mot
.Text = "</§1>"
Selection.Extend ' etendre la selection
.Execute ' atteindre le mot2
Selection.MoveLeft Unit:=wdCharacter, Count:=Len("</§1>"), Extend:=1
' reculer du mot 2
End With
Selection.Copy
Documents(MonDocument).Activate
Selection.Paste
Selection.TypeParagraph
Documents("source.doc").Activate
End If

If CheckBox2.Value Then
Documents("source.doc").Activate
Selection.HomeKey Unit:=wdStory
With Selection.Find
.ClearFormatting
.Text = "<§2>"
.MatchWildcards = 0
.Forward = 1
.Replacement.Text = ""
.Replacement.ClearFormatting
.Execute ' recherche du mot1
Selection.MoveRight 'déplacement a droite du mot
.Text = "</§2>"
Selection.Extend ' etendre la selection
.Execute ' atteindre le mot2
Selection.MoveLeft Unit:=wdCharacter, Count:=Len("</§2>"), Extend:=1
' reculer du mot 2
End With
Selection.Copy
Documents(MonDocument).Activate
Selection.Paste
Selection.TypeParagraph
Documents("source.doc").Activate
End If

mercredi 11 août 2004 à 12:26:55 | Re : boucle

Scalpweb

Membre Club

Je pense avoir une solution... Attend 3 secondes ;-)
mercredi 11 août 2004 à 12:30:34 | Re : boucle

ITALIA

Membre Club
Deja si tu as pas mal de CheckBox tu pourrais faire un groupe de controle....

CheckBox1(0)
CheckBox1(1)
CheckBox1(2)
CheckBox1(3)
CheckBox1(4)
.......
....
ce qui reduira la taille de ton code
Meme nom de controle CheckBox1 mais pas le meme Index

Dim MonDocument As String
MonDocument = Documents.Add
DocTravail.Value = MonDocument

For i=0 to 5
If CheckBox1(i).Value Then
Documents("source.doc").Activate
Selection.HomeKey Unit:=wdStory
With Selection.Find
.ClearFormatting
.Text = "<§1>"
.MatchWildcards = 0
.Forward = 1
.Replacement.Text = ""
.Replacement.ClearFormatting
.Execute ' recherche du mot1
Selection.MoveRight 'déplacement a droite du mot
.Text = "</§1>"
Selection.Extend ' etendre la selection
.Execute ' atteindre le mot2
Selection.MoveLeft Unit:=wdCharacter, Count:=Len("</§1>"), Extend:=1
' reculer du mot 2
End With
Selection.Copy
Documents(MonDocument).Activate
Selection.Paste
Selection.TypeParagraph
Documents("source.doc").Activate
End If
Next

It@li@
mercredi 11 août 2004 à 12:31:12 | Re : boucle

Scalpweb

Membre Club
Réponse acceptée !

Alors voilà :
Déjà, tu peux utiliser un groupe de checkbox. C'est à dire, que chaque checkbox est une copie du checkbox d'origine. Donc, il ont tous le même nom, mais un index différent. Après, tu peux faire un code du genre :

for i = 1 to CheckBox.count - 1

If CheckBox(i).Value Then
Documents("source.doc").Activate
Selection.HomeKey Unit:=wdStory
With Selection.Find
.ClearFormatting
.Text = "<§" & i & ">"
.MatchWildcards = 0
.Forward = 1
.Replacement.Text = ""
.Replacement.ClearFormatting
.Execute ' recherche du mot1
Selection.MoveRight 'déplacement a droite du mot
.Text = "<§" & i & ">"
Selection.Extend ' etendre la selection
.Execute ' atteindre le mot2
Selection.MoveLeft Unit:=wdCharacter, Count:=Len("</§" & i & ">"), Extend:=1
' reculer du mot 2
End With
Selection.Copy
Documents(MonDocument).Activate
Selection.Paste
Selection.TypeParagraph
Documents("source.doc").Activate
End If

next i

Voilà, c'est comme ça que je ferais.
@+, et bonne prog.
mercredi 11 août 2004 à 12:32:49 | Re : boucle

Scalpweb

Membre Club

Ok ITALIA, on se complète... Dsl, mais le serveur est un peu lent, et ta réponse n'était pas marquée. Donc en fait, on a eue la même idée, sauf que j'utilise le checkBox.count qui te permet d'avoir un nombre de paragraphe illimtée.

Voilà, @+
mercredi 11 août 2004 à 12:33:32 | Re : boucle

nebut

Réponse acceptée !
En voyant ton code, une idée m'est venue même si je pense qu'il y a beaucoup mieux au niveau de la lisibilité du programme mais bon je pense que ça devrait résoudre ton problème de devoir ajouter un paragraphe:

1) tu places ton code dans une sub:



sub test (i as integer)

If CheckBox & i.Value Then
Documents("source.doc").Activate
Selection.HomeKey Unit:=wdStory
With Selection.Find
.ClearFormatting
.Text = "<§1>"
.MatchWildcards = 0
.Forward = 1
.Replacement.Text = ""
.Replacement.ClearFormatting
.Execute ' recherche du mot1
Selection.MoveRight 'déplacement a droite du mot
.Text = "</§1>"
Selection.Extend ' etendre la selection
.Execute ' atteindre le mot2
Selection.MoveLeft Unit:=wdCharacter, Count:=Len("</§1>"), Extend:=1
' reculer du mot 2
End With
Selection.Copy
Documents(MonDocument).Activate
Selection.Paste
Selection.TypeParagraph
Documents("source.doc").Activate
End If
end sub


Après tu fais une boucle toute conne du style:


for i=1 to nb_checkbox
call test(i)
next


enfin il faut que tu déclares une variable nb_checkbox qui contient le nombre total de checkbox.
soit tu renseignes toi-même ce nombre
soit tu le calcules.(par contre la je ne sais pas comment faire!!!)

si tu trouves mon idée pourrie ou que ca ne marche pas (c'est possible car je n'ai pas VB sur mon pc actuel),
une autre solution serait peut-être d'utiliser un for each

maintenant à toi de voir ce que tu veux faire

j'éspère t'avoir aidé
bonne prog

nebut le miagiste
mercredi 11 août 2004 à 12:34:48 | Re : boucle

ITALIA

Membre Club
en modifiant aussi les lignes :

"<§2>"

It@li@
mercredi 11 août 2004 à 12:36:10 | Re : boucle

Scalpweb

Membre Club
Réponse acceptée !

Mais non, ITALIA et nebut, vous faites la même erreure ! Il faut faire :

.Text = "<§" & i & ">"

Sinon, on prend tjrs le même paragrphe....
mercredi 11 août 2004 à 13:05:04 | Re : boucle

ITALIA

Membre Club
c'est que j'ai ecrit à 12:34:48 !!!!!!!

je l'avait vu

It@li@
mercredi 11 août 2004 à 14:15:22 | Re : boucle

Esprit44

Merci a tous. Toutes les reponses aurait pu etre validées mais celle de scalpweb me convenait le mieux. Apres qq amenagements ce code fonctionne tres bien et me libere de nombreuses lignes!!!!

Merci a tous pour cette participation



ChRiS

1 2

Cette discussion est classée dans : text, doc, selection, documents, activate


Répondre à ce message

Sujets en rapport avec ce message

Help plz [ par Esprit44 ] Bonjour tout le mondej ai deja fait un post precedement mais aucune reponseLa j ai fais un bout de code ( pas de critique plz je debute) dont certains Pb export WORD [ par Florian29 ] Salut!J'ai un problème qd je réalise plusieurs exports consécutifs vers word sans fermer mon appli. En fait, après l'export je laisse word ouvert et l pb avec selection.homekey [ par mell01 ] bonjour,j'aurai besoin d'un peu d'aide: à l'ouverture d'un doc word je dois le parcourir pour trouver les signets et les remplacer par des valeurs ex pb avec word [ par mell01 ] bonjour,j'aurai besoin d'un peu d'aide: à l'ouverture d'un doc word je dois le parcourir pour trouver les signets et les remplacer par des valeurs ex [vb.net] Pb avec WORD [ par steppenwolf ] Salut !J'ai un soucis avec word en vb.net ! Je génère un .doc depuis mon application et mon pb est le suivant :j'ai créé un tableau d'une ligne et 2 c urgent pb insertion fichier word [ par mell01 ] bonjour, je cherche comment parcourir un doc word (ouvert par une appli vb),et permettre à l ouverture , suivant des champs spécifiques(autorisé en éc URGENT PB WORD SVP [ par mell01 ] bonjour, je cherche comment parcourir un doc word (ouvert par une appli vb),et permettre à l ouverture , suivant des champs spécifiques(autorisé en éc Selection du text dans le textbox [ par rgilles ] Bonjour,j'aimerai que quand j'utilise la touche tabulation dans une fentre ou il y a que des textbox comportant 1 seule ligneque la selection du text Lancement d'une marco appartenant à un autre fichier (Word VBA) [ par Polack77 ] Voila mon problème :J'ai développer une macro qui ouvre un doc Word copy et met en forme du texte et des tableau (ca ça roule <FON Adapter longueur champ selection listbox [ par thyphonfalcon ] Bonjour,J'aimerai savoir comment peut-on adapter la longueur de selection d'un item dans une listbox ?En fait, quand on selectionne un item dans une l


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales