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. 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 !
    2. 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. 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. 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 !