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 :

comment détecter la dernière cellule qui contient un début de mot spécifique dans une colonne donnée [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 61
    Points
    61
    Par défaut comment détecter la dernière cellule qui contient un début de mot spécifique dans une colonne donnée
    Bonjour,

    J'ai plusieurs cellules dans la colonne B de B45 à B87 dont le contenu commence par "tarte" mais moi je veux changer des données à partir de H88 à H125 de "croissant" à "petit pain"
    Donc il faut que je détecte la ligne 87 en question qui contient en début de mot :"tarte" pour que je puisse changer les données de la plage H88:H125. Et tout cela en code VBA dans une macro si c'est possible.

    Et Merçi d'avance à tous.

    Cdt,
    SKIP

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim c As Range
    Dim Lig As Long
     
    Set c = Sheets("Feuil1").Range("B:B").Find("tarte", lookat:=xlPart, SearchDirection:=xlPrevious)
    If Not c Is Nothing Then
        Lig = c.Row
        MsgBox Lig
        Set c = Nothing
    End If
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour, Bonjour Mercatog et le Forum

    Sinon j'avais (à adapter)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
     
    Public Sub Essai()
    Dim c As Range, derncel As Range
    Application.ScreenUpdating = False
    For Each c In Sheets("Feuil1").Range("B1", Range("B" & Rows.Count).End(xlUp))
        If c.Value Like "tarte*" Then Set derncel = c
    Next
    With derncel
                Range(.Offset(1, 0), .End(xlDown)).Offset(0, 6).Replace What:="tra", Replacement:="pan", LookAt:=xlPart
    End With
    End Sub
    Bonne semaine à tous

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Bonjour MarcelG,

    Tu peux m'expliquer ces lignes de code en détail qu'est ce qu'elles font ou signifient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With derncel
                Range(.Offset(1, 0), .End(xlDown)).Offset(0, 6).Replace What:="tra", Replacement:="pan", LookAt:=xlPart
    End With
    Cdt,
    SKIP

  5. #5
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    1 - Je déclare une procédure en "Public", c'est à dire exécutable depuis Excel (ALT + F8), sinon je l'aurais déclarée en Private.

    2 - La propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating
    initiée à définit le souhait de ne pas voir les exécutions se dérouler. Cette propriété rend le code plus performant.

    3 - Progressivement (je ne veux pas répéter derncel. d'où l'instruction With)

    Je considère la cellule de la ligne suivante de ma dernière "tarte".

    Je considère le champ entier de ma cellule ci-desus jusqu'à la fin de la colonne

    Ce champ défini, je le décale de 0 ligne et 6 colonnes (colonne H) pour lui appliquer la méthode Replace

    Cela dit, tu peux /
    - Regarder l'aide en ligne (F1) sur chaque mot-clé
    - Lire attentivement les différents Tutoriels et/ou Chapitres de la FAQ au sujet du fameux objet "Range".

    Au plaisir.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Merçi MarcelG, c'est très gentil de ta part.

    Cdt,
    SKIP

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

Discussions similaires

  1. [XL-2007] Comment rechercher une dernière valeur spécifique dans une colonne.
    Par jurdenis21 dans le forum Excel
    Réponses: 7
    Dernier message: 12/01/2013, 15h11
  2. [XL-2003] Trouver la dernière cellule qui contient une valeur définie
    Par apnw7931 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2011, 14h28
  3. comment afficher une cellule qui contient une formule, dans textbox
    Par cali59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/08/2009, 00h07
  4. Réponses: 4
    Dernier message: 16/04/2007, 00h25
  5. Réponses: 2
    Dernier message: 20/01/2007, 11h19

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