Vba probleme avec if

Résolu
Bonjour,

j'utilise excel 2003, et j'essaie d'établir une macro, mon objectif est de faire en sorte que

si cellule X de la colonne A = "DUTEXTE" alors cellule X corespondante dans la colonne Y = cellule B & "_" & cellule C,

Si vous pouvez m'aider, ce serait super !

d'avance merci pour vos conseils

5 réponses

  1. Je m'en suis sortie comme ça :

    Sub Macro1()
    '
    Dim CELUL As Range
    Dim cel As Long, nbr As Long

    nbr = Cells(Rows.Count, 1).End(xlUp).Row - 1

    For cel = 2 To nbr + 1
    If Cells(cel, 1).Value = "SUMMIT" Then
    Cells(cel, 4).Value = Cells(cel, 2).Value & "_" & Cells(cel, 2).Value
    End If
    Next cel

    End Sub

    Merci pour tout !
    1. Merci pour les réponses,

      Je n'ais pas eu le temps d'essayer, dès que c'est fait je vous fait un retour ! :)
      1. bonjour

        pas très clair ta demande
        ce que j'ai compris (par exemple pour la ligne 2)
        Si A2 = "DUTEXTE" alors Y2 = B2 & "_" & C2
        ce qui donnerait

        Dim li As Long 
        ..
        If Range("A" & li).Value = "DUTEXTE" Then 
          Range("Y" & li).Value = Range("B" & li).Value & "_" & Range("C" & li).Value 
        End If

        bonne suite
        1. Contributeur
          Sais pas si c'est ça que tu veux..
          Sub Test()
          Dim Lig As Long
              With Sheets("Feuil1") 'adapter le nom
              For Lig = 2 To .[A65536].End(xlUp).Row
                  If .Cells(Lig, 1) <> "" Then
                      .Cells(Lig, "Y") = .Cells(Lig, 2) & "_" & .Cells(Lig, 3)
                  End If
              Next
              End With
          End Sub

          Tu dis.
          A+
          1. Contributeur
            Bonjour, pourquoi passer en VBA ?

            Il suffit d'écrire dans la colonne Y :
            =SI(A1="DUTEXTE";CONCATENER(B1;"_";C1);)
            puis recopier vers le bas.

            Cordialement.
            Ce mec la n'était pas une lumière, car il était niais.
            1. Contributeur
              Bonjour,
              Faut comprendre "entre les lignes" :-)
                  =SI(A1<>"";CONCATENER(B1;"_";C1;"") 

              Ou bien
                  =SI(ESTVIDE(A1);"";CONCATENER(B1;"_";C1) )

              A+
            2. Bonjour et merci de vos réponses et de votre réactivité.

              Je dois passer par VBA car cela rentre dans le cadre d'un retraitement plus complet d'un fichier. Ce n'est pas la seule action que je dois effectuer, et ce traitement sera à réaliser quotidiennement sur de nouveaux fichiers.

              Savez vous ce que je pourrais faire ?

              j'ai essayé :
              Dim cellule as range
              for each Cellule in columns a if cellule = "texte" then, mais je ne m'en sort pas.

              Merci d'avance pour vos réponses !