DarkIndra
Messages postés21Date d'inscriptionvendredi 15 juin 2007StatutMembreDernière intervention 9 juillet 2007
-
5 juil. 2007 à 14:30
DarkIndra
Messages postés21Date d'inscriptionvendredi 15 juin 2007StatutMembreDernière intervention 9 juillet 2007
-
9 juil. 2007 à 08:24
Bonjour, il ne me semble pas avoir vu de post concernant mon soucis,
le voici, j'ai fait une macro pour trier un tableau, et elle fait bien son boulot, il me reste à la modifier pour que par exemple de :
<colgroup><col style=\"WIDTH: 82pt; mso-width-source: userset; mso-width-alt: 3986\" width=\"109\" /></colgroup>----
Jean Baptiste
On obtienne :
<colgroup><col style=\"WIDTH: 82pt; mso-width-source: userset; mso-width-alt: 3986\" width=\"109\" /></colgroup>----
Jean-Baptiste
en gros, a chaque fois, dans chaque cellule occupée, il faudrait que si il y a un nom ou prénom "composé" rajouter un tiret entre les 2 noms, j'ai testé ceci, mais ca ne fonctionne pas :(
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 juil. 2007 à 15:09
Pardon (mais tu vas le mériter...)
Si au moins tu avais ouvert ton aide en ligne, hein...
Tu aurais depuis longtemps prévi le cas d'absence d'espace !
allez (faut tout dire et tout faire... faisons)...
Private Sub Command1_Click()
toto = "aaaabb"
pos = InStr(toto, " ")
If pos > 0 Then
Mid(toto, pos, 1) = "-"
End If
MsgBox toto
End Sub
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 5 juil. 2007 à 14:45
Bonjour,
Pour l'avoir testé, il n'y a pas de problème ... le code s'exécute correctement
Gaffe quand même à "Message" peut être un mot réservé !!!
As tu un message d'erreur ... Dis en un peu plus
JML
Partageons notre savoir et nos acquis
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 juil. 2007 à 14:51
C'est quand même fort (moi, je ne connais rien à VBA)...
Je sais cependant :
1) que la fonction Replace n'est disponible dans VBA que depuis Office 2000
2) qu'il existe sur ce forum de quoi s'y substituer
Ici :
http://www.vbfrance.com/codes/FONCTION-REPLACE-POUR-OFFICE-97_41145.aspx 3) pour faire cette Minuscule chose, je ne me servirais même pas de ce substitut, me contenantant tout bêtement de Instr et de Mid !!!
5voir dans l'aide en ligne).
Vous n’avez pas trouvé la réponse que vous recherchez ?
DarkIndra
Messages postés21Date d'inscriptionvendredi 15 juin 2007StatutMembreDernière intervention 9 juillet 2007 5 juil. 2007 à 14:51
je n'ais aucun message d'erreur, peut etre que je l'a met au mauvais endroit
voici la macro plus complete
Dim Code
Dim Cpt
Dim Message As String, MTexte As String
Cpt = 0
While Not Cpt = 5
Range("A1").Activate
For compteur = 1 To 2000
If ActiveCell.Value = "BADGE" Then
Rows(compteur).Delete
End If
If IsEmpty(ActiveCell) Then
Rows(compteur).Delete
End If
Message = ActiveCell.Value
MTexte = Replace(Message, "a", "W")
ActiveCell.Value = (MTexte)
Selection.Offset(1, 0).Activate
Next
Range("A1").Activate
Cpt = Cpt + 1
Wend
Columns(5).Delete
Columns(5).Delete
Columns(5).Delete
Donc en faite je l'exécute 5fois car en une fois elle ne fait pas bien le truc, me demander pas pourquoi ^^ je ne comprend pas moi meme mais au bout de 5 fois, elle me supprime toutes mes lignes qui ne vont pas. Je pense que le code n'est pas trop dur a comprendre, si vous avez des questions n'hésitez pas
DarkIndra
Messages postés21Date d'inscriptionvendredi 15 juin 2007StatutMembreDernière intervention 9 juillet 2007 5 juil. 2007 à 15:21
Bon euh je ne sais pas ce qu'est l'aide en ligne en faite, je me sert tres tres rarement d'excel, pour ainsi dire jamais, mais la je dois faire une macro pour mon projet, j'ai fait ceci
Tmp = ActiveCell.Value
pos = InStr(Tmp, " ")
If pos > 0 Then
Mid(Tmp, pos, 1) = "-"
End If
ActiveCell.Value = (Tmp)
ca ne plante pas, mais je n'ais pas mes "-" entre les noms, prénoms qui sont "composés" :(
si tu me dis où je peux acceder a l'aide en ligne, je regarderais dessus
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 5 juil. 2007 à 15:27
Option Explicite
Sub ReplaceSpaceByDraw
Dim Mess
On Error Resume Next ' permet de continuer l'exécution du programme en cas d'erreur
Mess = ActiveCell.Value
Mess = Replace(Mess, " ", "-")
' A ce niveau tu peux tester la valeur de Err qui normalement doit être à 0 ou 5
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 juil. 2007 à 15:38
Fais donc (réflexe simple) un msgbox du contenu de la cellule avant traitement qui "ne marcehe pas"
et viens nous dire le résultat affiché ... (en nous confirmant que c'est bien le contenu attendu, bien sur...)
DarkIndra
Messages postés21Date d'inscriptionvendredi 15 juin 2007StatutMembreDernière intervention 9 juillet 2007 5 juil. 2007 à 15:45
Merci, ralala, excusez moi je suis très fatigué, je boss sur une interface graphique en C en meme temps, je l'ais quasiment fini d'ailleur. Et cette petite erreur toute bête ne m'est pas venu a l'idée, merci jmf de m'avoir fait afficher la cellule. Ta première méthode fonctionne jmf, je vous explique ce que je n'avais pas pensé. ActiveCell vite en faite toute une colonne de code du style 4400 donc forcément jamais mes noms et prénoms j'ai juste fait un offset(0,1) pour nom et (0,2) pour prénom et cela fonctionne à merveille. Merci à vous de m'avoir aidé, et merci jmf pour m'avoir fait voir cette erreur petite mais si génante
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 7 juil. 2007 à 19:07
Pour éviter de repasser 5 fois (et ce pourrait être plus...), commence ta boucle par la fin et remonte. Comme ça lorsque tu supprimes une ligne, tu ne rateras pas la suivante (ou précédente, selon)