Concatener sous vba

Bonjour,

j'essai de concatener deux cellules dans une autre sachant qu'après la colonne ou j'ai le résultat de la concatenation subit un tri alphabetique. j'ai essayé d'utiliser la fonction concatener mais quand j'applique le tri la cellule concatener affiche rien apres le tri.
est ce que quelqu'un peut m'aider

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    Si tu disais ce que tu as fait on pourrait peut-être voir l'erreur...
    Sinon de façon générale :
    [A3]=[A1] & [A2]

    eric
    1. voilà la formule que j'ai utilisé
      ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[79],"" "",RC[80])"
      a mon avis il faut pas que je désigne les cellules précisément.
      en fait g deux text box une pour le nom et l'autre pour le prénom et j'aimerai que le nom et le prénom apparaissent dans la meme cellule. c'est pour cela que j'ai penser à concatener mais il y a peut etre autre chose. parce que si je désigne des cellules précise quand je fait le tri alphabétique la cellule qui contient le nom et le prénom n'affiche plus les bonnes données elle prend les coordonnées de la cellule qui correspond a sa nouvelle ligne.
      1. Contributeur
        C'est parce que tu mets une formule dans la cellule, tu ne peux trier dessus.
        Mets plutôt le résultat de la concaténation tel que je te l'ai montré.
        eric
    2. Bonjour,
      Admis [A1] =Nom , [B1 ]= Prénom et en [C1 ] = Nom Prénom
      (avec nom dans TextBox1 et prénom dans TextBox2)
      Le code devrait-être :
      Range("C1").value = Me.TextBox1 & " " Me.TextBox2

      Salutations.
      Le Pingou
      1. Voilà le programme que j'utilise pour supprimer mes données sur la feuille principale. J'ai des feuilles annexes qui reprennent les mêmes données que ma fiche principale ; j'aimerai que lorsque je supprime une donnée, la suppression se fasse sur toutes les autres lignes équivalentes à ma donnée sur les autres feuilles.

        Avec le user form
        Private Sub CommandButton1_Click()
        xNom = Trim(SNom)
        Unload UserForm2
        SupDonnées
        End Sub

        Private Sub CommandButton2_Click()
        Unload UserForm2
        End Sub

        Dans un module
        Public SNom As String
        Public D As Integer
        Public V As String

        Private Sub UserForm_Initialize3()
        Dim U As Integer
        Load UserForm2
        Sheets("agents").Select
        U = 2
        Do
        V = Cells(U, 1).Value
        UserForm2.SNom.AddItem "" & V & ""
        U = U + 1
        Loop While Cells(U, 1) <> ""
        UserForm2.Show
        End Sub

        Private Sub nombrefeuille3()
        Dim n As Integer
        Sheets("agents").Select

        ' nl = le numéro de ligne de la cellule correspondante au nom donnée
        nl = Sheets("agents").[A65000].End(xlUp).Row + 1

        n = 2
        For n = 2 To nl
        If Cells(n, 1) = xNom Then
        Cells(n, 1).Select
        nnf = n
        End If
        Next
        End Sub

        Sub SupDonnées ()
        'Dim m As Integer
        nombrefeuille3
        With ActiveCell
        .Value = ""
        .Offset(0, 1).ClearContents
        .Offset (0, 2).ClearContents
        .Offset(0, 3).ClearContents
        .Offset(0, 4).ClearContents
        .Offset(0, 5).ClearContents
        .Offset(0, 6).ClearContents
        .Offset(0, 7).ClearContents
        .Offset(0, 8).ClearContents
        .Offset(0, 9).ClearContents
        .Offset(0, 10).ClearContents
        .Offset(0, 11).ClearContents
        End With

        `Classement par ordre alphabétique
        Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
        ActiveWorkbook.Worksheets("AGENTS").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("AGENTS").Sort.SortFields.Add Key:=Range("A2"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

        With ActiveWorkbook.Worksheets("AGENTS").Sort
        .SetRange Range(Selection, ActiveCell.SpecialCells(xlLastCell))
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
        End With
        End Sub
        1. Bonjour,
          Mais cela est complètement différent de la demande initiale.
          Désolé, je ne peux pas plus.