VBA-Remplacer

Résolu
Monsieur_Malik Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
Monsieur_Malik Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -
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.
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.
A voir également:

2 réponses

danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
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
0
Monsieur_Malik Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup ça marche a merveille
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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 vide
Sub 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
0
Monsieur_Malik Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
d'accord merci beaucoup pour vos reponses
0
Monsieur_Malik Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
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?
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Donc, dans ce cas la formule ne sera pas conservée :
Sub 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).Value = r.Value
  r.Offset(10).Replace "FXCORP-DA", "FXMASS-DA"
End Sub
0
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
Qu'est-ce que tu entends par "figé" ?

Daniel
0
Monsieur_Malik Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Annuler la formule donc juste avoir le resultat quand je clique dans la cellule
0
Monsieur_Malik Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
Oui 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
0
Monsieur_Malik Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
Les formules se trouvent en colonne G
0