VBA-Remplacer
Résolu
Bonjour,
Apres avoir créer une macro me permettant de Copier des lignes d'un tableau et les ajouter à la suite je voudrai faire en sorte que certaines données se trouvant dans la partie a copier soient changé uniquement dans la partie qui sera collée en dessous de mon tableau. C'est a dire remplacer tous les "FXCORP" par des "FXMASS" mais seulement dans la partie qui sera ajouté a la suite de mon tableau. Voici ce que je suis parvenu a faire mais quand il sagit de remplacer c'est tout le tableau qui change.
je vous remercie d'avance pour votre aide.
Apres avoir créer une macro me permettant de Copier des lignes d'un tableau et les ajouter à la suite je voudrai faire en sorte que certaines données se trouvant dans la partie a copier soient changé uniquement dans la partie qui sera collée en dessous de mon tableau. C'est a dire remplacer tous les "FXCORP" par des "FXMASS" mais seulement dans la partie qui sera ajouté a la suite de mon tableau. Voici ce que je suis parvenu a faire mais quand il sagit de remplacer c'est tout le tableau qui change.
je vous remercie d'avance pour votre aide.
Sub test()
Dim i As Integer
Dim arret As Boolean
i = 2
Do
If (ActiveSheet.Range("A" & i)) = "" Then
arret = True
Else
i = i + 1
End If
Loop While arret = False
Range("A" & i - 10 & ":DL" & i - 1).Copy
Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Dim Paste As Worksheet
For Each Paste In ThisWorkbook.Worksheets
Paste.Cells.Replace What:="FXCORP-DA", Replacement:="FXMASS-DA"
Next Paste
End Sub
Configuration: Windows / Chrome 70.0.3538.110
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
2 réponses
-
Bonjour,
Essaie :
Sub test() Dim i As Integer Dim arret As Boolean i = 2 Do If (ActiveSheet.Range("A" & i)) = "" Then arret = True Else i = i + 1 End If Loop While arret = False Range("A" & i - 10 & ":DL" & i - 1).Copy Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Selection.Replace "FXCORP-DA", "FXMASS-DA" End Sub
Cordialement.
Daniel-
-
Bonjour,
Il serait plus propre d'écrire :Sub test() Dim r As Range Set r = ActiveSheet.Columns(1).Find("*", , , , , xlPrevious).Offset(-9).Resize(10, 116) r.Copy r.Offset(10) r.Offset(10).Replace "FXCORP-DA", "FXMASS-DA" End Sub
Edit : Ou si A1 est videSub test() Dim r As Range With ActiveSheet.Columns(1) Set r = .Find("", .Cells(2), , , , xlNext).Offset(-10).Resize(10, 116) End With r.Copy r.Offset(10) r.Offset(10).Replace "FXCORP-DA", "FXMASS-DA" End Sub -
@Patrice33740d'accord merci beaucoup pour vos reponses
-
-
Une derniere chose je voudrais aussi que le resultat de la formule qui ce trouve dans la partie du tableau a copier soit figée comment faire?
-
-
-
-
@Patrice33740Oui mais je veut que la formule soit annulée seulement dans la partie du tableau que je vais copier pas au niveau de la partie qui sara collée a la suite
-
-