Fonction VBA Remplacement
Guy_L
Messages postés
176
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans une macro, j'utilise la commande suivante pour vider certaines cellules
Mon problème est que, bien que j'incrémente les feuilles dans ma macro et que j'ai bien la feuille n+x qui est sélectionné (en l'occurrence ici la feuille alpha), la sélection de cellules reste toujours sur la feuille 1 et donc ne s'exécute pas dans les autres.
Mon incrément dans le code passe de la feuille alpha à la feuille beta
Pouvez-vous me dire si c'est la syntaxe de sélection qui fait ça ?
Merci
Dans une macro, j'utilise la commande suivante pour vider certaines cellules
Application.ScreenUpdating = False
Dim DerLig As Long
On Error Resume Next
For f = 1 To 2
If f = 1 Then Set ShVert = Sheets("alpha") Else Set ShVert = Sheets("beta")
ShVert.Select
DerLig = [A100000].End(xlUp).Row
Selection.Replace What:="motaremplacer", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
next f
Mon problème est que, bien que j'incrémente les feuilles dans ma macro et que j'ai bien la feuille n+x qui est sélectionné (en l'occurrence ici la feuille alpha), la sélection de cellules reste toujours sur la feuille 1 et donc ne s'exécute pas dans les autres.
Mon incrément dans le code passe de la feuille alpha à la feuille beta
Pouvez-vous me dire si c'est la syntaxe de sélection qui fait ça ?
Merci
Configuration: Windows / Firefox 81.0
A voir également:
- Fonction VBA Remplacement
- Remplacement coco - Accueil - Réseaux sociaux
- Coco.fr remplacement - Accueil - Réseaux sociaux
- Fonction si et - Guide
- Fonction remplacer sur word - Guide
- Fonction miroir - Guide
5 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu utiliser les balises de code quand tu partages du code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Si tu veux voir ce qui se passe et détecter les erreurs, supprime, au moins temporairement,
et
veille à ajouter
ensuite, évite d'utiliser "Select".
suggestion:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Si tu veux voir ce qui se passe et détecter les erreurs, supprime, au moins temporairement,
Application.ScreenUpdating = False
et
On Error Resume Next
veille à ajouter
option expliciten début de module, ce qui te force à déclarer chaque variable.
ensuite, évite d'utiliser "Select".
suggestion:
Dim f As Integer, shVert As Worksheet 'On Error Resume Next For f = 1 To 2 If f = 1 Then Set shVert = Sheets("alpha") Else Set shVert = Sheets("beta") shVert.Replace What:="motaremplacer", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Next f End Sub
Bonjour,
J'avais placé le sujet dans le mauvais endroit, merci de m'en excuser.
Par contre, j'avais bien mis les balises de code (d'ailleurs ça se voit puisque le code est dans un cadre).
Voici cette fois la totalité de la macro, sachant que j'ai testé les modifications sans succès hélas:
J'avais placé le sujet dans le mauvais endroit, merci de m'en excuser.
Par contre, j'avais bien mis les balises de code (d'ailleurs ça se voit puisque le code est dans un cadre).
Voici cette fois la totalité de la macro, sachant que j'ai testé les modifications sans succès hélas:
Sub Macro1() Application.ScreenUpdating = False Dim DerLig As Long Dim i As Integer, shVert As Worksheet On Error Resume Next For f = 1 To 2 If f = 1 Then Set shVert = Sheets("alpha") Else Set shVert = Sheets("beta") shVert.Select DerLig = [A100000].End(xlUp).Row 'Effacement des images Dim img As Object For Each img In shVert.Shapes img.Delete Next 'remplacement du mot "Mot1" par [vide] Selection.Replace What:="Mot1", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 'remplacement du mot "Mot2" par [vide] Selection.Replace What:="Mot2", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 'remplacement du mot "Mot3" par [vide] Selection.Replace What:="Mot3", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 'remplacement du mot "Mot" par [vide] Selection.Replace What:="Mot4", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 'remplacement du mot "Mot5" par [vide] Selection.Replace What:="Mot5", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 'remplacement du mot "Mot6" par [vide] Selection.Replace What:="Mot6", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False 'suppression des lignes vides Range("A1:A" & DerLig).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'Alignement à gauche Columns("A:A").HorizontalAlignment = xlLeft 'Ajustement colonne Columns("A:A").Columns.AutoFit Next f End Sub
' Application.ScreenUpdating = False Dim DerLig As Long, shVert As Worksheet ' On Error Resume Next For f = 1 To 2 If f = 1 Then Set shVert = Sheets("alpha") Else Set shVert = Sheets("beta") DerLig = [A100000].End(xlUp).Row 'Effacement des photos Dim img As Object For Each img In shVert.Shapes img.Delete Next 'remplacement du mot "Mot1" par [vide] shVert.Replace What:="Mot1", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False '... [etc....] Next f End Sub
la macro plante (erreur de compilation) sur "shVert.Replace What:="motaremplacer""
avec cette version là, ça marche (y compris sans l'option explicit)
merci, ça me permet d'avancer sur mon projet ici:
https://forums.commentcamarche.net/forum/affich-36408467-extraire-une-liste-suite#p36847829
merci, ça me permet d'avancer sur mon projet ici:
https://forums.commentcamarche.net/forum/affich-36408467-extraire-une-liste-suite#p36847829
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question