VBA lire une colone et en tiré les info

totor51 Messages postés 10 Statut Membre -  
totor51 Messages postés 10 Statut Membre -
bonjours a tous ceux qui me reponderont et aux autres biensur

je bosse sur excel en utiisant VBA
je doit lire chaque ligne d'une colonne et suivant la valeur qu'il y a dans chaque cellule et retourné un mot "ex; marche ou arret". voila si quelqu'un peut me donner une piste ou une solution pourkoi po si vous voulais plus d'info d'hesiter.

@+ et bonne soiré a tous

4 réponses

  1. Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
     
    salut,

    Ca va peut-être t'aider :
    Option Explicit
    
    Sub MaProcedure()
        Dim rngCell As Range
        
        For Each rngCell In Columns(1).Cells
            Application.StatusBar = rngCell.Row
            If Not IsEmpty(rngCell) Then
                Select Case rngCell.Value
                    Case 0
                        rngCell.Offset(0, 1).Value = "Arrêt"
                    Case 1
                        rngCell.Offset(0, 1).Value = "Marche"
                    Case Else
                        rngCell.Offset(0, 1).Value = "Autre chose..."
                End Select
            End If
        Next
        
        Application.StatusBar = ""
    End Sub
    
    0
  2. totor51 Messages postés 10 Statut Membre
     
    merci Kobaya aujourd'hui je n'ai pas eu le temps de tester ce que tu ecrit tinkiete je te tiendrait au courant si ca fonctionne
    merci encore
    @+
    0
  3. totor51 Messages postés 10 Statut Membre
     
    bon jours a tous
    finalement j'ai enregitrer une nouvelle macro
    suivant les diferente valeur de bon tableau cela me retourner l'etat de l'application
    dans ma case g mis ca :

    =SI(E3=1;"marche'1'";SI(ET(C3=1;E3=0);"Arret'1'";SI(ET(C3=2;E3=0);"pas defaut'1'";SI(ET(C3=5;E3=0);"Arret'2'";SI(ET(C3=6;E3=0);"pas defaut'2'";SI(E3=2;"Defaut'1'";SI(E3=5;"Marche'2'";SI(E3=6;"Defaut'2'";"pb data"))))))))

    cela fonctionne ensuite je voulais le generaliser a laide d'une macro car je ne connais po le nombre de valeur de bon tableau
    g taper ca en VBA

    Sub Traiter_resultat()
    'on test la colone pour connaitre l'état du métier a tisser

    Range("F3").Select

    ActiveCell.FormulaR1C1 = _
    "=RC[-1]=1 ""marche'1'"" AND(RC[-3]=1,RC[-1]=0)""Arret'1'"" AND(RC[-3]=2,RC[-1]=0)""pas defaut'1'"" AND(RC[-3]=5,RC[-1]=0)?""Arret'2'"" AND(RC[-3]=6,RC[-1]=0)""pas defaut'2'"" IF(RC[-1]=2,""Defaut'1'"",IF(RC[-1]=5,""Marche'2'"",IF(RC[-1]=6,""Defaut'2'"",""pb data"")))"
    Range("F3").Select
    Selection.AutoFill Destination:=Range("f3", Range("f3").End(xlDown)).Select, Type:=xlFillDefault
    Range("f3", Range("f3").End(xlDown)).Select
    End Sub

    hé la ca ne marche po alors que c 'est excel ki a generé le test
    g un message d'erreur '1004'
    erreur définit par l'application ou par l'objet

    voila je ne voi po ou ai mon erreur si kelkun a une idée merci et @+
    0
    1. Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
       
      re salut,

      voici ce que j'ai enregistré en utilisant des adresses relatives (pour les lignes) et absolues (poutr les colonnes), et ça fonctionne.
      Sub Traiter_resultat()
      'on test la colone pour connaitre l'état du métier a tisser
          Range("F3").Select
          ActiveCell.FormulaR1C1 = _
              "=IF(RC5=1,""marche'1'"",IF(AND(RC3=1,RC5=0),""Arret'1'"",IF(AND(RC3=2,RC5=0),""pas defaut'1'"",IF(AND(RC3=5,RC5=0),""Arret'2'"",IF(AND(RC3=6,RC5=0),""pas defaut'2'"",IF(RC5=2,""Defaut'1'"",IF(RC5=5,""Marche'2'"",IF(RC5=6,""Defaut'2'"",""pb data""))))))))"
          Range("F3").Select
          Selection.AutoFill Destination:=Range("f3", Range("f3").End(xlDown)).Select, Type:=xlFillDefault
          Range("f3", Range("f3").End(xlDown)).Select
      End Sub
      
      0
  4. totor51 Messages postés 10 Statut Membre
     
    salut
    ba je te remercie
    ca fonctionne
    bien
    @+
    0

Discussions similaires