Vba probleme avec if

Résolu
chico -  
 chico -
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. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  2. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    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.
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Bonjour,
      Faut comprendre "entre les lignes" :-)
          =SI(A1<>"";CONCATENER(B1;"_";C1;"") 

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

      A+
      0
    2. chico
       
      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 !
      0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    0
  4. chico
     
    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 ! :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. chico
     
    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 !
    0