[VBA Excel] Construire formule à partir de variable lettre de colonne

Construire formule à partir de variable lettre de colonne [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 14-12-2006 à 17:27:36    

Salut,
Voilà mon souci... et je suis sûr de ne pas être le premier :D
 
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 ! :)

Reply

Marsh Posté le 14-12-2006 à 17:27:36   

Reply

Marsh Posté le 14-12-2006 à 17:52:30    

Reply

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

Reply

Marsh Posté le 14-12-2006 à 18:17:29    

Merci pour vos réponses les copaings !

Reply

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+

Reply

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

Reply

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.

Reply

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


Message édité par seniorpapou le 03-01-2007 à 14:27:26
Reply

Marsh Posté le 03-01-2007 à 22:45:24    

Merci, seigneurpapou, c'est exactement ce qu'il fallait faire. Encore merci.

Reply

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.

Reply

Marsh Posté le 03-01-2007 à 23:12:37   

Reply

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.

Reply

Marsh Posté le 05-01-2007 à 18:13:02    

Bonsoir,
peux-tu donner un exemple?
Cordialement

Reply

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.

Reply

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.  

Reply

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

Reply

Marsh Posté le 07-01-2007 à 00:56:32    

Magnifique! çà a marché du premier coup!!!
Merci beaucoup. Je vais essayer de comprendre..

Reply

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

Reply

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


Message édité par seniorpapou le 11-01-2007 à 07:25:16
Reply

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.

Reply

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

Reply

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.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed