Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
642 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel macro pour appliquer fonction sur une colonne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel macro pour appliquer fonction sur une colonne

n°1589839
ulmo133
Posté le 22-07-2007 à 20:16:32  profilanswer
 

Bonjour à tous,
Je suis en stage et durant celui-ci nous utilisons un classeur excel avec des macros. Il m'a été demandé de faie une modification mais je n'arrive pas à trouver le bon code.
Dans le tableau il y a plusieurs colonnes, je dois en rajouter une qui rend "oui" ou "non" pour cahque ligne suivant la valeur contenu dans les cellules d'une autre colonne. Dans cette autre colonne il y a un code à 4  ou 6 chiffres et c'est l'un de ces chiffres qui m'intéresse. J'ai donc utilisé la fonction mid() mais je n'arrive pas à appliquer ma fonction à toute la colonne.
Mon code :
 
    If Mid(K, 2, 1) = 1 Or Mid(K, 2, 1) = 0 Or Mid(L, 6, 1) = 1 Or Mid(L, 6, 1) = 0 Or Mid(L, 2, 1) = 1 Or Mid(L, 2, 1) = 0 Then
    Cells(vID, PresProtect) = "Oui"
    Else
    Cells(vID, PresProtect) = "Non"
    End If
 
Si quelqu'un peut m'aider je ne m'y connais pas trop en programmation.
Merci beaucoup.

mood
Publicité
Posté le 22-07-2007 à 20:16:32  profilanswer
 

n°1589841
olivthill
Posté le 22-07-2007 à 20:58:33  profilanswer
 

Le premier paramètre de la fonction mid() doit être une chaine de caractères.
Est-ce que K et L sont des noms de variables, ou bien est-ce les lettres des colonnes ?
 
La valeur renvoyée par la fonction mid est une chaine de caractères, donc il ne faut pas la comparer avec un chiffre.
 
Il faudrait avoir quelque chose comme

Dim valeur_K as String
valeur_K = CStr(ma_feuille.Cells(lg_no, col_no)))
If Mid(valeur_K, 2, 1) = "0" Or .....


Message édité par olivthill le 23-07-2007 à 14:05:45
n°1589843
ulmo133
Posté le 22-07-2007 à 21:21:26  profilanswer
 

K et L sont des noms de colonnes.  
Merci pour ta réponse si rapide.

n°1589867
ulmo133
Posté le 22-07-2007 à 22:12:44  profilanswer
 

En fait ce que je cherche à faire c'est appliquer une fonction dans toute une colonne du tableau dynamique un eu comme si j'utilisais la méthode d'étendre la formule quand je l'ai tapé dans une seule cellule.
Merci

n°1589894
kiki29
Posté le 22-07-2007 à 23:30:21  profilanswer
 

en fait tu cherches à créer une fonction personnalisée
en ne tenant compte que de ton code ( bon ou pas )

Option Explicit
 
Function YesNo(ByVal Rng1 As Range, ByVal Rng2 As Range) As String
    If Mid(Rng1, 2, 1) = 1 Or Mid(Rng1, 2, 1) = 0 Or _
       Mid(Rng2, 6, 1) = 1 Or Mid(Rng2, 6, 1) = 0 Or _
       Mid(Rng2, 2, 1) = 1 Or Mid(Rng2, 2, 1) = 0 Then
        YesNo = "Oui"
    Else
        YesNo = "Non"
    End If
End Function


ce code est à placer dans un Module standard
[Alt+F11] Menu Insertion | Module
 
Ensuite sous Excel  
    Sélectionner la cellule de destination
    Menu Insertion | Fonction | Catégorie : Personnalisées
    Sélectionner YesNo
    l'assistant apparait etc
 
Sinon par Exemple A1     =YesNo(Z1;H1)
 
il y aurait peut-être un And à placer qqpart ? enfin tu verras

Option Explicit
 
Function YesNo2(ByVal Rng1 As Range, ByVal Rng2 As Range) As String
    If (Mid(Rng1, 2, 1) = 1 Or Mid(Rng1, 2, 1) = 0) And _
       (Mid(Rng2, 6, 1) = 1 Or Mid(Rng2, 6, 1) = 0 Or _
        Mid(Rng2, 2, 1) = 1 Or Mid(Rng2, 2, 1) = 0) Then
        YesNo2 = "Oui"
    Else
        YesNo2 = "Non"
    End If
End Function


Message édité par kiki29 le 23-07-2007 à 00:05:44
n°1590408
ulmo133
Posté le 23-07-2007 à 19:59:11  profilanswer
 

Merci pour votre aide j'ai enfin avec vos conseils réussi à faire ce que je voulais.
A bientôt


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel macro pour appliquer fonction sur une colonne

 

Sujets relatifs
Problème avec fonction IF NOT EXISTVBA [Résolu] Passer une fonction en paramètre
Appliquer un onmouseout sur un conteneur ET ses élémentsappel d'une fonction (execution) qui est definie par un char[]
[Excel] Mélange de somme.si et nb.sidécomposer une adresse par macro sur excel
excel: connection bdd sql server 2005Extraction de plusieurs requêtes SQL Server sous Word ou Excel
[EXCEL] Liste déroulante sur multi spreadsheets ss Excel 
Plus de sujets relatifs à : Excel macro pour appliquer fonction sur une colonne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR