IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème avec code VBA pour exécuter une recherche/remplacer sur une grande plage de donnée [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut Problème avec code VBA pour exécuter une recherche/remplacer sur une grande plage de donnée
    Bonjour,
    je vous explique mon problème...
    j'ai dans une colonne des heures affichées comme telle:
    08:17 ou bien 09:54... Mon but est de créer à partir de ces heures différentes des plages horaires comme suit: 08h - 09h ; 09h - 10h; 10h - 11h...
    J'ai mis un code qui à fonctionné mais qui d'un coup ne fonctionne plus du tout, sans doute trop simpliste. Je voulais tenter avec la fonction for each mais je ne suis pas encore très à l'aise avec.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Sub Remplacer_heures()
     
    Worksheets("Intégration").Columns("C").Replace _
     What:="08:**", Replacement:="08h - 09h", _
    SearchOrder:=xlByColumns, MatchCase:=False, LookAt:=xlPart
     
    Worksheets("Intégration").Columns("C").Replace _
     What:="09:**", Replacement:="09h - 10h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="10:**", Replacement:="10h - 11h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="11:**", Replacement:="11h - 12h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlPart
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="12:**", Replacement:="12h - 13h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="13:**", Replacement:="13h - 14h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="14:**", Replacement:="14h - 15h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="15:**", Replacement:="15h - 16h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="16:**", Replacement:="16h - 17h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="17:**", Replacement:="17h - 18h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="18:**", Replacement:="18h - 19h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="19:**", Replacement:="19h - 20h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="20:**", Replacement:="20h - 21h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="21:**", Replacement:="21h - 22h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="22:**", Replacement:="22h - 23h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="23:**", Replacement:="23h - 24h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="00:**", Replacement:="00h - 01h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="01:**", Replacement:="01h - 02h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     Worksheets("Intégration").Columns("C").Replace _
     What:="02:**", Replacement:="02h - 03h", _
     SearchOrder:=xlByColumns, MatchCase:=True, LookAt:=xlWhole
     
     
     
    Range("A1").Select
    End Sub
    Pouvez-vous m'aider, je met en copie un fichier juste pour ce code là...

    Merci à vous d'avance car je suis bloqué dessus
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Par défaut
    Bonjour,

    S'il vous est possible de rajouter une colonne pour stocker les valeurs modifiées, vous pouvez vous passer d'une macro.
    La formule suivante permet d'obtenir la conversion souhaitée (ici écrite pour la ligne 3) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =TEXTE(HEURE(C3-ENT(C3));"00\h")&" - "&TEXTE(HEURE(C3-ENT(C3))+1;"00\h")
    Et pour ce qui est de votre macro, les paramètres de vos recherches ne sont pas cohérents entre eux.
    Et une seule étoile suffit.

    Cdt

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    sans VBA
    en D2 et copier vers le bas :
    CONCATENER(TEXTE(C2;"hh")&"H-"&TEXTE(C2+TEMPS(0;60;0);"hh")&"H")

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut
    Merci je vais tester ça de suite et je reviens vers vous

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    et si vous insistez sur VBA :
    la traduction de la formule donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub testtt()
    '
    Application.ScreenUpdating = False
    Dim F As Worksheet
    Set F = Sheets("Intégration")
    Dim i As Long
    i = F.Range("C" & Rows.Count).End(xlUp).Row
        Range("D2").Select
        ActiveCell.FormulaR1C1 = "=CONCATENATE(TEXT(RC[-1],""hh"")&""H-""&TEXT(RC[-1]+TIME(0,60,0),""hh"")&""H"")"
        Range("D2").Select
        F.Range("D2").AutoFill Destination:=Range("D2:D" & i), Type:=xlFillDefault
        F.Columns("D:D").Copy
        F.Columns("D:D").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False      
        Application.CutCopyMode = False  
    Application.ScreenUpdating = True
    End Sub

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut AU top
    C'est parfait, c'est ce qu'il me fallait... Je vais pouvoir intégrer ça à mon gros code maintenant...
    Merci à vous les gars vous êtes au top

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Créer un code vba pour faire une recherche sur le net
    Par brisefer dans le forum VBA Access
    Réponses: 0
    Dernier message: 27/09/2019, 16h02
  2. [XL-MAC 2016] Recherche de code vba pour effectuer une prevision sur 50ans
    Par tidi77 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/05/2018, 21h45
  3. Réponses: 4
    Dernier message: 12/08/2010, 14h19
  4. Réponses: 2
    Dernier message: 14/10/2009, 08h57
  5. Code VBA pour Copier une cellule dans un filtre?
    Par Redisdead dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/02/2009, 05h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo