Entrer plusieurs mots dans une cellule

Bonjour,

Je reviens vers vous car mon manque de savoir en VBA est très pénalisant.

RIC m’a aidé en me faisant un petit programme que je pensais pourvoir modifier sans problème et qui fonctionne super bien. Maintenant j’ai besoin de le modifier ce programme pour rentrer plusieurs mots dans une même cellule. Tout fonctionne bien, l’onglet se crée sans problème avec les mots demandés, la page « aamodele » se remplit sans problème comme je le souhaite mais lorsque je clique sur un nom dans la page « accueil » pour me rendre sur l’onglet en question j’ai le massage suivant « il n’y a pas de feuille pour …. »

Dernier problème lorsque je renter un mot avec une apostrophe je plante grave ex: « carte d’or ».

Donc voila si quelqu’un peut me dépanner sur cette dernière phase cela serait cool. J’ai tout essayé à mon avis mais là ça coince. Merci

4test1.xlsm (82.97 Ko)

Bonjour,

Curieux, l'on dirait qu'il y a eu des changements dans le code depuis.

Quoiqu'il en soit ....

Un essai de correction ...

Dans la feuille "Accueil" ... remplace ...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count = 1 Then
        If Target.Column = 1 And Target.Row >= 3 And Target <> "" Then
           If FeuilleExiste(Cells(Target.Row, Target.Column).Value) = True Then
                Sheets(Cells(Target.Row, Target.Column).Value).Activate
            Else
                MsgBox "Il n'y a pas de feuille pour " & Cells(Target.Row, Target.Column).Value
            End If
        Else
        End If
    End If
End Sub

ric

Bonjour,

Personnellement j'aurai paramètré le target sur la plage de (A3 à dernière cellule non vide de la colonne A).

Ensuite plus besoin de vérifier si la feuille existe puisqu'il n'y que les noms de feuille qui viennent s'ajouter

dans cette colonne.

Bonjour,

J'arrive peut-être un peu tard, mais je voulais proposer une autre solution semble-t-il plus simple.

Cordialement.

7test1-v2.xlsm (91.52 Ko)

Bonjour à tous,

@Xmenpl ... tout à fait d'accord. Le fichier d'origine était tout autre, je constate qu'il a été adapté à de nouveaux besoins.

ric

Bonjour à tous,

@Xmenpl ... tout à fait d'accord. Le fichier d'origine était tout autre, je constate qu'il a été adapté à de nouveaux besoins.

ric

Bonjour Ric oui je me doute qu'il a du subir quelques outrages indigestes à lire ou plutôt à dire

après c'est peut-être pour recopier la correction dans l'original dont les modifications sont moindres ?

Bonjour a tous,

Oui oui effectivement j'ai corrigé (enfin j'ai essayé) le code du fichier.

J'ai voulu l'adapter à une nouvelle demande mais voila je n'y arrive pas mais oui le fichier a été modifié.

Je regarde vos envois et je vous tiens au jus.

Mais d'avance merci

Bonjour,

RIC j’ai essayé d’entrer ton code dans la feuille « accueil » mais ça ne fonctionne pas ou je n’ai pas su faire (c’est surement ça).

J’ai donc téléchargé le petit fichier d’ « YVOUILLE » et la ça fonctionne je peux entrer plusieurs mots.

Par contre si je rentre un nom avec une « ‘ » je plante est-ce que vous pourriez juste corriger ce dernier petit problème svp ?

Merci

5test1-v2.xlsm (64.60 Ko)

Bonjour à tous,

Si le nom comporte une apostrophe, il faut doubler l'apostrophe dans la formule ...

Un essai ...

Voir deux lignes avant le "End Sub".

Sub duplic()
Dim x
Dim NomFeuil As String   ' << ajout ...
Dim Dlig As Integer   ' << ajout ...

    x = InputBox("Nom prénom et secteur du nouveau salarié")
    If x = "" Then    'si bouton annuler ou croix rouge cliqué
        MsgBox "Aucun salarié entré ! "
        Exit Sub    'sort de la procédure
    Else
        Worksheets("aamodele").Select
        Range("a2").Value = (x) 'Split(x, " ")(0)    'mets le résultat en cellule a2 de la feuille modele
        'Range("d2").Value = Split(x, " ")(1)
        'Range("e1").Value = Split(x, " ")(2)
    End If

    'duplique et renome la feuille "modele"
    Worksheets("aamodele").Copy After:=Sheets(Worksheets.Count)
    Set mysheet = ActiveSheet
    ActiveSheet.Unprotect
    With mysheet
        .Name = (x) 'Split(x, " ")(0) & " " & Split(x, " ")(1)
    End With
    NomFeuil = mysheet.Name   ' << ajout ...
    ActiveSheet.Protect

'Modifier avec succés jusque la !!

    Worksheets("accueil").Select

   Dlig = Cells(Rows.Count, "A").End(xlUp).Row + 1   ' << ajout ...
   Cells(Dlig, "A") = (x) 'Split(x, " ")(0)
   ' Cells(Dlig, "B") = Split(x, " ")(1)

   ' si le nom comporte une apostrophe, il faut la doubler dans la formule
   If InStr(NomFeuil, "'") > 0 Then NomFeuil = Left(NomFeuil, InStr(NomFeuil, "'")) & "'" & Right(NomFeuil, Len(NomFeuil) - InStr(NomFeuil, "'"))
   Cells(Dlig, "D").FormulaLocal = "='" & NomFeuil & "'!H1"   ' << ajout ...
End Sub

ric

Ok RIC,

Merci ils feront attention de ne pas mettre d’apostrophe c'est tout.

Merci encore pour tout, tout fonctionne..

Bonjour à tous,

Le code que je t'ai fait parvenir, c'est lui qui gère le cas et il ajoute au besoin le double apostrophe.

Donc, les gens peuvent saisir un nom contenant une apostrophe et ça va fonctionner.

ric

Ah oooookkkkk,

alors oui ça va être cool merci !!

je vais l’intégrer ce matin.

Merci bien.

Rechercher des sujets similaires à "entrer mots"