Next en simultané

Résolu/Fermé
Stridou... Messages postés 52 Date d'inscription mardi 29 juillet 2014 Statut Membre Dernière intervention 22 octobre 2014 - 22 oct. 2014 à 11:16
Stridou... Messages postés 52 Date d'inscription mardi 29 juillet 2014 Statut Membre Dernière intervention 22 octobre 2014 - 22 oct. 2014 à 12:48
Bonjour à tous,

J'ai un code qui me permet d'éliminer le texte qui se trouve entre un "%" et un ".".

Mon problème est que j'aimerais que pour une ligne_Origine=3 le résultat s'inscrive sur la ligne_Destination=3, puis pour une ligne_Origine=4 le résultat s'inscrive sur la ligne_Destination=4 ect... et que pour le moment ce n'est pas ce qui se passe !

Merci beaucoup de votre aide !

J'ai également une autre problématique : j'aimerai que mon code s'exécute jusqu'à la première case vide de la colonne 6 => colonne_Origine (c'est à dire enlever For Ligne_Destination = 3 To 100
For Ligne_Origine = 3 To 100 )



Sub parenth()
Dim Ligne_Origine As Integer, Colonne_Origine As Integer
Dim pos1 As Integer
Dim pos2 As Integer


Dim Ligne_Destination As Integer, Colonne_Destination As Integer
Dim cellule_Destination As String


For Ligne_Destination = 3 To 100
For Ligne_Origine = 3 To 100
Colonne_Destination = 7


Colonne_Origine = 6

temp = Cells(Ligne_Origine, Colonne_Origine)
temp = Replace(temp, " .", " 0.")
pos1 = InStr(temp, "%")
pos2 = InStr(pos1, temp, ".")
While pos1 <> 0 And pos2 <> 0
If pos1 > 1 Then
tmp = Left(temp, pos1)
End If
If pos2 > 0 Then
tmp = tmp & Mid(temp, pos2 + 1)
End If
If pos1 + pos2 = 0 Then tmp = temp
temp = tmp
pos1 = InStr(pos1 + 1, temp, "%")
pos2 = InStr(pos1 + 1, temp, ".")
Wend
parenthese = Trim(tmp)


Cells(Ligne_Destination, Colonne_Destination) = parenthese



Next Ligne_Origine

Next Ligne_Destination


End Sub


Merci beaucoup encore une fois ! Ce forum est d'une grande aide lorsqu'on est débutant !

3 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
22 oct. 2014 à 11:58
Bonjour,

si j'ai bien compris votre demande:

entre un "%" et un "." avec votre code le "%" reste et le "." disparait, je n'ai pas change

Sub parenth()
Dim Ligne As Integer, Colonne_Origine As Integer
Dim pos1 As Integer, pos2 As Integer
Dim Ligne_Destination As Integer, Colonne_Destination As Integer

With Worksheets("feuil1")
Colonne_Origine = 6
Colonne_Destination = 7
derlig1 = .Cells(3, Colonne_Origine).End(xlDown).Row
For Ligne = 3 To derlig1
temp = Cells(Ligne, Colonne_Origine)
temp = Replace(temp, " .", " 0.") '?????????
pos1 = InStr(temp, "%")
pos2 = InStr(pos1, temp, ".")
Cells(Ligne, Colonne_Destination) = Trim(Left(temp, pos1) & Right(temp, Len(temp) - pos2))
Next Ligne
End With
End Sub
0
Stridou... Messages postés 52 Date d'inscription mardi 29 juillet 2014 Statut Membre Dernière intervention 22 octobre 2014
22 oct. 2014 à 12:27
Bonjour,

Merci beaucoup de votre aide !

Oui c'est ça, sauf que dans une cellule il peut y avoir plusieurs fois la compilation %TXT. à supprimer d'où la partie (je pense)

If pos1 + pos2 = 0 Then tmp = temp
temp = tmp
pos1 = InStr(pos1 + 1, temp, "%")
pos2 = InStr(pos1 + 1, temp, ".")


Votre code marche pour la première suppression, mais pas les suivantes...

Pour la ligne avec des ???? : elle permet de modifier .NB en 0.NB

Entre temps, pour améliorer le rendu, j'ai changé une ligne
Cells(Ligne_Destination, Colonne_Destination) = LCase(parenthese)

Afin d'écrire le résultat en minuscule !

Merci encore !
0
Stridou... Messages postés 52 Date d'inscription mardi 29 juillet 2014 Statut Membre Dernière intervention 22 octobre 2014
22 oct. 2014 à 12:48
Bonjour,
Entre le votre et le mien, j'ai réussi à avoir la bonne compilation !

Merci beaucoup !!
0