[vba] Remplacer un chiffre par une variable
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, j'ai un problème pour remplacer une valeur par une variable dans ceci :
Je voudrais remplacer la valeur 5000 par la variable derniereLigne, mais je n'y parviens pas.
Pourriez vous me filer un coup de pouce car je suis bloqué ;)
Merci d'avance
derniereLigne = Range("A65536").End(xlUp).Offset(1, 0).Row ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],movex!R2C2:R5000C5,4,FALSE)"
Je voudrais remplacer la valeur 5000 par la variable derniereLigne, mais je n'y parviens pas.
Pourriez vous me filer un coup de pouce car je suis bloqué ;)
Merci d'avance
A voir également:
- [vba] Remplacer un chiffre par une variable
- Excel trier par ordre croissant chiffre - Guide
- Remplacer disque dur par ssd - Guide
- Clavier iphone chiffre et lettre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Remplacer un mot par un autre word - Guide
12 réponses
Bravo !!! Merci à tous les deux
PS : J'avais un autre problème dans le même genre :
https://forums.commentcamarche.net/forum/affich-17270146-remplacer-par-une-variable
Merci énormément.
PS : J'avais un autre problème dans le même genre :
https://forums.commentcamarche.net/forum/affich-17270146-remplacer-par-une-variable
Merci énormément.
Bonjour
Un p'tit coup de main?
Ok :
En cas d'erreur, merci de signaler exactement ce que vous dit excel et/ou VBA...
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Un p'tit coup de main?
Ok :
Dim derniereligne As Integer derniereLigne = Range("A65536").End(xlUp).Offset(1, 0).Row ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],movex!R2C2:R" + derniereligne + "C5,4,FALSE)"
En cas d'erreur, merci de signaler exactement ce que vous dit excel et/ou VBA...
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Donc, ca bloque toujours, et il dit
Type incompatible
en affichant
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],movex!R2C2:R" + derniereligne + "C5,4,FALSE)"
Type incompatible
en affichant
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],movex!R2C2:R" + derniereligne + "C5,4,FALSE)"
Es tu sur de l'emplacement de tes "[" et "]" dans la formule? J'ai l'impression qu'il en manque quelques uns... Je n'avais pas testé ton code, juste dit comment y insérer une variable...
Donc en fait tu recherches la v aleur contenue même ligne mais 5 colonnes avant dans une matrice située feuille "movex" en 4ème colonne? C'est bien cela?
Donc en fait tu recherches la v aleur contenue même ligne mais 5 colonnes avant dans une matrice située feuille "movex" en 4ème colonne? C'est bien cela?
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],movex!R[2]C[2]:R[" + derniereligne + "]C[5],4,FALSE)"devrait fonctionner..... Sinon enregistre ta formule avec l'enregistreur de macros et remplace juste
[5000]par
[" + derniereligne + "]
Justement ma formule a été faite par le moteur de macro, je cherche juste a remplacer ;)
Toujours la même erreur, voici ce que je vois dans mes cellule mainetnant
=RECHERCHEV(C2;movex!$B$2:RdernierLigneC5;4;FAUX)
Toujours la même erreur, voici ce que je vois dans mes cellule mainetnant
=RECHERCHEV(C2;movex!$B$2:RdernierLigneC5;4;FAUX)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui, c'est un ancien affichage ca, j'ai vidé les cellule et relancé, en fait, rien ne se met dans les cellules, ca bloque avant avec toujours ce même message d'erreur et j'ai bien mis le code
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],movex!R2C2:R[" + derniereligne + "]C[5],4,FALSE)"
C'est désespérant :D
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],movex!R2C2:R[" + derniereligne + "]C[5],4,FALSE)"
C'est désespérant :D
Je ne peux malheureusement pas, j'ai des accès très restreint au Web, par contre, si tu as un mail, c'est possible.
Salut piep14, pikaju,
En utilisant la propriété Formula au lieu de FormulaR1C1 :
ActiveCell.Formula = "=VLOOKUP(C2,movex!B2:R" & derniereligne & ",4,FALSE)"
En utilisant la propriété Formula au lieu de FormulaR1C1 :
ActiveCell.Formula = "=VLOOKUP(C2,movex!B2:R" & derniereligne & ",4,FALSE)"
Juste un dernier trucs, je voulais passer le tout en fonction car je l'utilise pas mal de fois
Mais j'arrive pas a retourner la valeur :s
Function derniereligne(colonne) Dim der As Integer der = Range(colonne & "65536").End(xlUp).Offset(1, 0).Row End Function
Mais j'arrive pas a retourner la valeur :s
Salut Tompols au passage,
Pour l'utiliser : Insertion/Fonctions, choisir "personnalisées" et cliquer sur "derniereligne"...
EDIT : J'oubliais... l'argument doit être saisit comme cela : "A" avec guillemets...
Function derniereligne(colonne) derniereligne = Range(colonne & "65536").End(xlUp).Offset(1, 0).Row End Function
Pour l'utiliser : Insertion/Fonctions, choisir "personnalisées" et cliquer sur "derniereligne"...
EDIT : J'oubliais... l'argument doit être saisit comme cela : "A" avec guillemets...
Je voulais l'appeler comme ca
derligne = derniereligne("A")
MsgBox derligne
ActiveCell.Formula = "=VLOOKUP(C2,movex!B2:E" & derligne & ",4,FALSE)"
C'est pas jouable ?
Désolé, je suis plus spécialiste en développement WEB :D
derligne = derniereligne("A")
MsgBox derligne
ActiveCell.Formula = "=VLOOKUP(C2,movex!B2:E" & derligne & ",4,FALSE)"
C'est pas jouable ?
Désolé, je suis plus spécialiste en développement WEB :D
Pardon, je pensais que tu voulais appeler une fonction personnalisée depuis ta feuille...
Ahhh un bon café et :
Ahhh un bon café et :
Dim dern As Integer Function der(colonne) dern = Range(colonne & "65536").End(xlUp).Row End Function Sub recherch() Call der("A") MsgBox dern ActiveCell.Formula = "=VLOOKUP(C2,movex!B2:E" & dern & ",4,FALSE)" End Sub
Sub bttn5_Click() Range("H2").Select Call derniereligne("A") MsgBox der ActiveCell.Formula = "=VLOOKUP(C2,movex!B2:E" & der & ",4,FALSE)" End Sub Function derniereligne(colonne) Dim der As Integer der = Range(colonne & "65536").End(xlUp).Offset(1, 0).Row End Function
Mon message d'alerte est vide :s
Re,
Utiliser de variable pour stocker le resultat d'une fonction n'est pas recommandé (Cf déclaration et portée des variables)
essaie plutot comme ceci :
Utiliser de variable pour stocker le resultat d'une fonction n'est pas recommandé (Cf déclaration et portée des variables)
essaie plutot comme ceci :
Sub bttn5_Click() Range("H2").Select MsgBox derniereligne("A") ActiveCell.Formula = "=VLOOKUP(C2,movex!B2:E" & der & ",4,FALSE)" End Sub Function derniereligne(colonne) Dim der As Integer derniereligne = Range(colonne & "65536").End(xlUp).Offset(1, 0).Row End Function
https://forums.commentcamarche.net/forum/affich-17270146-remplacer-par-une-variable#2