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 :

Insertion dans cellule speciale [VBA]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut Insertion dans cellule speciale [VBA]
    Bonjour,
    j'ai une demande assez spéciale dont je n'ai aucune idée si cela est possible, mais si ça l'est cela m'aiderait grandement !
    Mon problème est:

    Quand j’écris un mot spécial, par exemple "capot" il me l’insère dans une cellule spéciale

    Pouvez-vous m'aider svp ?
    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 265
    Points
    34 265
    Par défaut
    Salut,

    dans quelle cellule/quel objet est-il ici question d'insertion au départ ?

    Une cellule "spéciale", c'est une cellule spécifique, car il n'y a pour ainsi dire aucune cellule spéciale (genre cellule magique )
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Bonjour,
    Il n'y a pas forcement de cellule special mais en gros je souhaiterai que quand je rentre un mot spécial (ex: "capot") dans la cellule A1 (par exemple), le programme détecte le mot et le place dans une cellule voulu (ex: F5)

  4. #4
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Ce code est à placer dans le module de la feuille concernée (clic droit sur l'onglet de cette feuille / visualiser le code) :


    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
    Option Explicit
     
    Private Const MOT As String = "Capot"   ' A ADAPTER
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CellSource As Range, CellCible As Range
       Set CellSource = Me.Range("A1")   ' A ADAPTER
       If Not Intersect(Target, CellSource) Is Nothing Then
          If CellSource.Value = MOT Then
             Set CellCible = Me.Range("F5")   ' A ADAPTER
             CellCible.Value = CellSource.Value
             CellSource.Value = ""
             Set CellCible = Nothing
          End If
       End If
       Set CellSource = Nothing
    End Sub
    Adaptez ce qui doit l'être...
    Cordialement,
    Franck

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par pite0611 Voir le message
    Il n'y a pas forcement de cellule special mais en gros je souhaiterai que quand je rentre un mot spécial (ex: "capot") dans la cellule A1 (par exemple), le programme détecte le mot et le place dans une cellule voulu (ex: F5)
    Le plus simple, c'est de mettre en F5 la formule :
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    le code ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Private Sub Worksheet_Change(ByVal Target As Range)
    =SI(A1="capot";A1;"")
    End Sub

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par pite0611 Voir le message
    le code ne fonctionne pas
    Je n'ai pas dit que c'était du code VBA.
    C'est une formule à mettre dans une cellule.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    et en code VBA cela donnerai quoi ..?

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("F5").FormulaLocal = "=SI(A1=""capot"";A1;"""")"
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par pijaku Voir le message
    Bonjour,

    Ce code est à placer dans le module de la feuille concernée (clic droit sur l'onglet de cette feuille / visualiser le code) :


    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
    Option Explicit
     
    Private Const MOT As String = "Capot"   ' A ADAPTER
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CellSource As Range, CellCible As Range
       Set CellSource = Me.Range("A1")   ' A ADAPTER
       If Not Intersect(Target, CellSource) Is Nothing Then
          If CellSource.Value = MOT Then
             Set CellCible = Me.Range("F5")   ' A ADAPTER
             CellCible.Value = CellSource.Value
             CellSource.Value = ""
             Set CellCible = Nothing
          End If
       End If
       Set CellSource = Nothing
    End Sub
    Adaptez ce qui doit l'être...



    Desolé, je n'avais pas vu ton message, il correspond parfaitement à ma demande merci beaucoup !

  11. #11
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    et si je veux ajouter d'autre mot (Capot, Court-circuit) je le modifie comment ?

    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
     Option Explicit
     
    Private Const MOT As String = "Capot"   ' A ADAPTER
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CellSource As Range, CellCible As Range
       Set CellSource = Me.Range("A1")   ' A ADAPTER
       If Not Intersect(Target, CellSource) Is Nothing Then
          If CellSource.Value = MOT Then
             Set CellCible = Me.Range("F5")   ' A ADAPTER
             CellCible.Value = CellSource.Value
             CellSource.Value = ""
             Set CellCible = Nothing
          End If
       End If
       Set CellSource = Nothing
    End Sub

  12. #12
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par pite0611 Voir le message
    et si je veux ajouter d'autre mot (Capot, Court-circuit) je le modifie comment ?
    Comme ça :
    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
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CellSource As Range, CellCible As Range, Mots, i As Integer
       Mots = Array("capot", "court-circuit")   ' A ADAPTER
       Set CellSource = Me.Range("A1")   ' A ADAPTER
       If Not Intersect(Target, CellSource) Is Nothing Then
          For i = LBound(Mots) To UBound(Mots)
             If CellSource.Value = Mots(i) Then
                Set CellCible = Me.Range("F5")   ' A ADAPTER
                CellCible.Value = CellSource.Value
                CellSource.Value = ""
                Set CellCible = Nothing
                Exit For
             End If
          Next
       End If
       Set CellSource = Nothing
    End Sub
    Cordialement,
    Franck

  13. #13
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    merci <3

  14. #14
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Bonjour, le programme fonctionne bien mais le problème c'est que je dois le copier coller vraiment bcp de fois si je veux l’utiliser plusieurs fois. N'existe-t-il pas un moyen que quand j'entre un un mot "capot, cour-circuit" en colonne C il me restitue m’écris le mot en E mais sur la même ligne ?
    Cordialement

    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
     Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CellSource As Range, CellCible As Range, Mots, i As Integer
       Mots = Array("capot", "court-circuit")   ' A ADAPTER
       Set CellSource = Me.Range("A1")   ' A ADAPTER
       If Not Intersect(Target, CellSource) Is Nothing Then
          For i = LBound(Mots) To UBound(Mots)
             If CellSource.Value = Mots(i) Then
                Set CellCible = Me.Range("F5")   ' A ADAPTER
                CellCible.Value = CellSource.Value
                CellSource.Value = ""
                Set CellCible = Nothing
                Exit For
             End If
          Next
       End If
       Set CellSource = Nothing
    End Sub

  15. #15
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Décidément, il faut tout te faire...
    pite0611
    Membre à l'essai
    Étudiant ==> il est grand temps de t'y mettre...

    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
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Mots, i As Integer
     
       Mots = Array("capot", "court-circuit")   ' A ADAPTER
     
       If Target.Column = 3 Then
          For i = LBound(Mots) To UBound(Mots)
             If Target.Value = Mots(i) Then
                Target.Offset(0, 2).Value = Target.Value
                Target.Value = ""
                Exit For
             End If
          Next
       End If
    End Sub
    Cordialement,
    Franck

  16. #16
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par pite0611 Voir le message
    N'existe-t-il pas un moyen
    Merci beaucoup pour le programme mais ce n'est pas la peine de me faire un reproche, j'avais juste demander si il existait un moyen de base et non de me le faire..

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

Discussions similaires

  1. [XL-2010] Insertion dans cellules
    Par ph_anrys dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/03/2013, 11h14
  2. [XL-2003] Imposer 1ere lettre majuscule dans cellule via VBA
    Par medino55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2011, 03h34
  3. probleme insertion formule dans cellule via vba
    Par moxo01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/06/2008, 11h06
  4. [VBA-E]Formule dans cellule en VBA
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/06/2007, 14h03

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