Plage de données pour fonction Right
Fermé
Chachoumie
-
Modifié le 29 mai 2017 à 13:19
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 29 mai 2017 à 15:26
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 29 mai 2017 à 15:26
A voir également:
- Plage de données pour fonction Right
- Fonction si et - Guide
- Supprimer les données de navigation - Guide
- Reinstaller windows sans perte de données - Guide
- Tnt base de données vide ✓ - Forum TNT / Satellite / Réception
- Fonction moyenne excel - Guide
6 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
29 mai 2017 à 14:17
29 mai 2017 à 14:17
Bonjour Chachoumie, bonjour le forum,
Peut-Être comme ça :
Évite autant que tu le peux les Select inutiles qui ne font que ralentir l'exécution du code...
Peut-Être comme ça :
Sub Macro1() Dim PL As Range Dim C As Range Set PL = Range("C4:C30000") For Each C In PL C.Value = Mid(C.Value, 151) Next End Sub
Évite autant que tu le peux les Select inutiles qui ne font que ralentir l'exécution du code...
Bonjour ThauTheme et merci pour ta réponse !
Je viens d'essayer ton code et je me suis également aperçue que certaines cellules avaient plus de caractères que d'autres.
Existe-t-il une fonction qui permet de récupérer un bout de texte et de supprimer le reste ?
J'avais essayé avec la fonction Replace mais mon texte n'est jamais le même je ne peux donc pas l'utiliser :/
Merci d'avance pour ta réponse
Je viens d'essayer ton code et je me suis également aperçue que certaines cellules avaient plus de caractères que d'autres.
Existe-t-il une fonction qui permet de récupérer un bout de texte et de supprimer le reste ?
J'avais essayé avec la fonction Replace mais mon texte n'est jamais le même je ne peux donc pas l'utiliser :/
Merci d'avance pour ta réponse
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
29 mai 2017 à 14:28
29 mai 2017 à 14:28
Bonjour,
Pour 29997 valeurs il est préférable de passer par un tableau :
Pour 29997 valeurs il est préférable de passer par un tableau :
Option Explicit Sub Test() Dim t As Variant Dim i As Long t = Range("C4:C30000").Formula For i = LBound(t) To UBound(t) t(i, 1) = Mid(t(i, 1), 151) Next Range("C4:C30000").Formula = t End Sub
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
29 mai 2017 à 14:55
29 mai 2017 à 14:55
Re,
Certes Patrice ! Je ne m'étais même pas rendu compte de l'étendue de la plage....
Sinon, Chachoumie, à part la fonction BouleDeCristal qui n'a toujours pas été mise en place dans VBA, je ne vois pas comment on va pouvoir répondre à ton nouveau problème. Si au moins tu fournissais des exemple pour qu'on puisse se faire une idée...
Certes Patrice ! Je ne m'étais même pas rendu compte de l'étendue de la plage....
Sinon, Chachoumie, à part la fonction BouleDeCristal qui n'a toujours pas été mise en place dans VBA, je ne vois pas comment on va pouvoir répondre à ton nouveau problème. Si au moins tu fournissais des exemple pour qu'on puisse se faire une idée...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup pour vos réponses,
Pour vous donner un exemple, je récupère les données d'un fichier texte et je les insère dans excel. Dans ma colonne C je vais avoir plusieurs cellules contenant du texte (ex : INFO: User p059311 on FRMH100149(C8-D3-FF-2B-FB-48) updated license-reservation for aquintos PREEvision-7.5.0-FDTDMCP3TAdmin-6-28062016-31129999-1540 (4 of 8))
Ce que j'aimerais réalisé est que lorsque j'ai 4 of 8 d'écrit dans ma cellule alors je remplace tout le texte de ma cellule par 4/8. Et je fais cela pour toutes les cellules de ma colonne.
Le problème est que la fonction replace est longue et je dois faire ça pour chaque données (de 0/8 à 8/8). Je pense qu'il doit exister une fonction vba plus simple qui permettrait de faire cela. J'ai cherché sur plusieurs forums et pour l'instant je n'ai pas trouvé de solutions.
J'espère avoir été claire dans mon message
Pour vous donner un exemple, je récupère les données d'un fichier texte et je les insère dans excel. Dans ma colonne C je vais avoir plusieurs cellules contenant du texte (ex : INFO: User p059311 on FRMH100149(C8-D3-FF-2B-FB-48) updated license-reservation for aquintos PREEvision-7.5.0-FDTDMCP3TAdmin-6-28062016-31129999-1540 (4 of 8))
Ce que j'aimerais réalisé est que lorsque j'ai 4 of 8 d'écrit dans ma cellule alors je remplace tout le texte de ma cellule par 4/8. Et je fais cela pour toutes les cellules de ma colonne.
Le problème est que la fonction replace est longue et je dois faire ça pour chaque données (de 0/8 à 8/8). Je pense qu'il doit exister une fonction vba plus simple qui permettrait de faire cela. J'ai cherché sur plusieurs forums et pour l'instant je n'ai pas trouvé de solutions.
J'espère avoir été claire dans mon message
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
29 mai 2017 à 15:26
29 mai 2017 à 15:26
Re,
Essaies :
Essaies :
Option Explicit Sub Test() Dim t As Variant Dim i As Long Dim j As Byte Dim s As String t = Range("C4:C30000").Formula Range("C4:C30000").NumberFormat = "@" For i = LBound(t) To UBound(t) For j = 0 To 8 s = j & " of 8" If InStr(1, t(i, 1), s) > 0 Then t(i, 1) = j & "/8" End If Next j Next i Range("C4:C30000").Formula = t End Sub