Construire formule à partir de variable lettre de colonne [VBA Excel] - VB/VBA/VBS - Programmation
Marsh Posté le 14-12-2006 à 17:52:30
voir formules en http://forum.hardware.fr/hardwaref [...] 2089-1.htm 
Marsh Posté le 14-12-2006 à 17:59:48
Bonsoir, 
A = "E" 
monran = A & "5" 
MsgBox Range(A & "5" ).Value 
MsgBox Range(monran).Value 
 
 
les deux fonctionnent bien sans pb  
 
tu dois avoir un autre pb 
Cordialement
Marsh Posté le 19-12-2006 à 17:24:18
ca marche pas comme ca 
 
A doit être déclaré en string 
dim A as string 
A=inputbox("quelle est la colonne ?" ) 
A=rtrim(ltrim(A)) 
range("&A&"5).select 
 
normalement ca devrait marché 
tien au courant 
A+
Marsh Posté le 22-12-2006 à 21:36:08
Ce style là aussi devrait marcher (ca rejoint ce qu'à dit ingenieurcesi, sauf ecrit differement) 
 
dim A as string 
dim col as byte 
 
col=5 
A="E" & col 
range(A).Value 
Marsh Posté le 03-01-2007 à 14:10:23
Bonjour. 
 
Dans ma feuille de calcul excel j'ai un autofilter, et je voudrais remplir son criteria1 par la valeur d'une cellule (A1), afin que le déclenchement de ma macro fasse fonctionner l'autofilter sur ce critère. 
 
Pour le moment j'ai écrit : 
 
Dim madonnée As Integer 
    range("A1" ).Select 
    madonnée = ("A1" ).Value 
    range("C3:D3" ).Select  
    Selection.AutoFilter Field:=2, Criteria1:=madonnée 
Si je remplace la valeur de "madonnée" par un chiffre à la place de "("A1" ).Value", mon filtre marche bien évidemment. C'est la description de madonnée qui pèche.... Comment faire? 
 
Merci pour une aide.
Marsh Posté le 03-01-2007 à 14:27:09
Bonjour, 
pas tout compris, mais remplaces : 
madonnée = ("A1" ).Value  
par 
madonnée = range("A1" ).Value  
si ce que tu as mis n'est pas une erreur de frappe. 
Cordialement
Marsh Posté le 03-01-2007 à 22:45:24
Merci, seigneurpapou, c'est exactement ce qu'il fallait faire. Encore merci. 
Marsh Posté le 03-01-2007 à 23:12:37
Bonjour, 
 
Dans ma feuille de calcul je dispose d'un autofilter qui me filtre (par une macro) des données en lignes sur plusieurs colonnes. Je voudrais entrer des valeurs sur certaines de ces colonnes appartenant aux lignes filtrées. Le problème est de définir leur positions...sais pas faire.
Marsh Posté le 05-01-2007 à 15:55:32
Bonjour, 
Explication plus détaillée de mon problème: 
 
J'essaie de faire la manip suivante: J'ai une feuille avec une liste à plusieurs colonnes  A, B, C, D. 
La colonne C doit recevoir la donnée d'une variable aprés sélection de la ligne opérée sur une donnée unique dans A. 
Autrement dit la macro doit faire : 
Identifier le mot unique en colonne A, 
Sélectionner la ligne contenant ce mot, 
Se positionner sur la cellule de C correspondante à la même ligne,  
Et y copier une donnée qu'elle trouve dans une variable.....???? Est-ce claire et est-ce possible? Merci pour votre aide.
Marsh Posté le 06-01-2007 à 14:02:21
Violà le cas qui me pose problème: 
 
A	B	C	D	E 
C1	C2	C3	765	D 
A	AZEER    
B	QSDQ    
C	SDFS    
D	DFGDF    
E	FGHFGH    
F	GHJGHJ    
 
Sélectionner la ligne grâce à la variable E1 (ici la ligne 5) 
Et coller la valeur de la variable D1 en ligne 5 et colonne C 
( les colonnes C1, C2, C3, sont des listes) Merci. 
Marsh Posté le 06-01-2007 à 14:19:25
Mon exemple est mal sorti. Je corrige: 
     A      B      C      D      E 
1   C1    C2    C3    765   D 
2   A      aaa 
3   B      bbb 
4   C      ccc 
5   D      ddd  765 
6   E      eee 
 
Sélectionner la ligne grâce à la variable E1 (ici la ligne 5)  
Et coller la valeur de la variable D1 en ligne 5 et colonne C  
( les colonnes C1, C2, C3, sont des listes) Merci.  
Marsh Posté le 06-01-2007 à 15:14:05
Bonsoir, 
Sub chacha() 
 
With Worksheets(1).Range("a:a" ) 
 
cher = Range("E1" ).Value 
    Set c = .Find(cher, LookIn:=xlValues) 
    If Not c Is Nothing Then 
      c.Select 
            c.Offset(0, 2).Value = Range("D1" ).Value 
            
     Else 
     MsgBox cher & "non trouvé" 
      
    End If 
End With 
End Sub 
 
 
Ton exemple était lisible en regardant le bbcode 
Cordialement
Marsh Posté le 07-01-2007 à 00:56:32
Magnifique! çà a marché du premier coup!!! 
Merci beaucoup. Je vais essayer de comprendre..
Marsh Posté le 10-01-2007 à 19:31:42
Bonjour, 
Aprés activation manuelle d'un autofiltre, je voudrais stocker dans une cellule ou une variable le nom de ce filtre qui vient de fonctionner. Est-ce possible? . le but est de démarrer ou non une macro par ctrl+a en fonction du nom de ce filtre 
Marsh Posté le 11-01-2007 à 07:12:31
Bonjour, 
Ce que tu nommes autofitre est-un filtre automatique? 
Si oui, qu'appelles-tu le "nom" de ce filtre? 
 
Ceci devrait pouvoir t'aider: 
 
L'exemple suivant montre comment affecter à une variable la valeur de la propriété Criteria1 du filtre pour la première colonne de la plage filtrée dans la feuille de calcul Crew. 
 
With Worksheets("Crew" ) 
    If .AutoFilterMode Then 
        With .AutoFilter.Filters(1) 
            If .On Then c1 = .Criteria1 
        End With 
    End If 
End With  
Tu aurais du ouvrir un sujet spécifique parce que je crains que ta question ne corresponde pas au titre : Construire une formule...... 
et peu de monde ira lire ta question ici. 
 
Cordialement
Marsh Posté le 11-01-2007 à 11:23:55
Merci senior d'avoir répondu. 
Effectivement, ce sont bien des filtres automatiques. 
Le nom du filtre est en fait le nom figurant en tête de colonne de filtre. Par défaut ce nom est "colonne1" "colonne2".. etc. C'est ce nom que je voudrais stocker dans une variable ou une cellule, après avoir fait fonctionner le filtre...???? 
Ce n'est pas le "criteria", 
Merci.
Marsh Posté le 11-01-2007 à 15:41:00
Bonsoir, 
With Worksheets("origin2004" ) 
    If .AutoFilterMode Then 
    With .AutoFilter 
    For i = 1 To .Filters.Count 
        If .Filters(i).On Then  
          MsgBox "colonne" & i 
        end if 
        
    Next i 
          
     End With 
    End If 
End With 
 
 
Cordialement
Marsh Posté le 11-01-2007 à 17:35:47
Merci beaucoup, seniorpapou, vraiment vous m'avez beaucoup aidé. Je suppose que vous faites des essais avant de communiquer les solutions, parce qu'elles marchent sans bavures!  
Encore merci.
Marsh Posté le 14-12-2006 à 17:27:36
Salut, 
 
 
 
 
 
Voilà mon souci... et je suis sûr de ne pas être le premier
En résumé, j'ai une variable A = "E"
Je voudrait obtenir la valeur de la cellule E5, par un Range ("E5" ).value, mais avec ma variable A
Et évidemment Range (A & "5" ).value ne fonctionne pas
Si quelqu'un a une solution sous le coude, je suis preneur !