Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

indirection en VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

papy10vn

XLDnaute Nouveau
Bonjour tout le monde,
J'ai une adresse dans une cellule et j'ai besoin de cette adresse, pour me positionner.
Sous Excel, on a bien une instruction "indirect", mais en VBA cette instruction existe? Comment fait-on?

Ex: La cellule B1, contient A6. Dans A6 j'ai une valeur. Avec Excel, on fait Indirect(B1) et on obtient la valeur.
Et en VBA ???😀

Merci de vos précieux conseils.
 
Re : indirection en VBA

Bonjour Papy10vn,

Si tu souhaites récupérer la valeur de ta cellule B1, pourquoi ne pas dire :

=range("b1").value ou bien =range("b1").text

Certaines fonctions dans VBA n'ont pas lieu d'être, par exemple CONCATENER, puisque le & permet cela en VBA.
Peut-être est-ce la même chose pour la fonction INDIRECT.
 
Re : indirection en VBA

Bonjour Pap,

si j'ai bien compris, en vba cela donnerait ceci :

Code:
Dim x
x = Range(Range("A1").Value).Value

en supposant que dans la cellule A1 tu as une référence de cellule, par exemble B1, x te renvoie la valeur de B1...

bonne journée
@+
 
Re : indirection en VBA

Bonjour et mercie,
Mais en fait dans une colonne, j'ai un certain nombre (30), qui indique la ligne d'un tableau.
Je voudrais pouvoir lire le premier nombre, pour aller à la ligne correspondate. Le 2ème nombre pour une autre ligne etc...
La colonne de ligne se trouve en N1:N31

Sub MajMat ()
Dim Col# ; Numéro de colonne
Dim Lig# ; Numéro de ligne
Dim Nbs# ; Nombre de sortie
Dim I#, J#
Col = range("C1") ; Récupérer le N° de colonne
Nbs = Range("D1") ; Récupérer le Nb sortie
For I=1 to Nbs
Worksheets("Feuille1"). Cells(??,Col).Value=Cells(??,Col)+I
Next I
End Sub

Les ??, je ne sais pas récupérer indirectement les numéros de lignes se trouvant dans N1:N31

Pourriez-vous me donner une suggestion?

Merci beaucoup.
 
Re : indirection en VBA

Essaye deja avec ca pour recuperer un N° de ligne
Code:
Worksheets("Feuil1").Range("Tacellule").row '(peut etre avec .rows)
Ps : n'oublie pas de définir le type de tes variables dans tes macros, car là c'est pas fait
 
Re : indirection en VBA

Bonjour Papy

je ne comprends pas bien, si tu as un nombre D1, ta variable Nbs prendra bien cette valeur donc le code ci dessous devrait fonctionner :

Code:
Worksheets("Feuille1"). Cells(Nbs ,Col).Value=Cells(Nbs,Col)+I

par contre j'ai du mal à voir le résultat attendu, pour un complément d'info mets ton fichier en pièce jointe, sans données confidentielles, avec un peu plus d'explication...

bonne journée
@+
 
Re : indirection en VBA

Re,

je ne vois pas beaucoup plus, sachant que tu dis que les colonnes S à V sont cachées.

Si on recherche à partir de U4 on peut déterminer la colonne K, mais après quels critères permettent de déterminer l'index.

En V4 nous avons le nombre de sorties, a mon avis a repositionner en K10... Les cellules S4 correspondent à quoi ? Une saisie ou à un résultat ?

je n'ais pas trop de solution en l'état je dirais même plus j'en ai aucune...

bonne soirée
@+
 
Re : indirection en VBA

Salut papy, salut tout le monde

Une simple remarque :

Tu as déjà posé le problème ici : https://www.excel-downloads.com/threads/correspondance-entre-sheet-et-vba.78931/

essaie donc de continuer sur le même fil.

Les intervenants désirant t'aider auront ainsi un maximum de renseignements et pourront mieux cerner ton problème.

@+

Si tu ne l'as pas fait, tu peux jeter un coup d'oeil sur le fichier que j'avais joint et nous tenir au courant.
 
Dernière édition:
Re : indirection en VBA

Merci tout le monde pour votre patience,
En fait je voudrais faire une mise à jour des matériels sorties, dans le tableau au bon endroit.
Le mot "copier" m'est resté, et c'était une mauvaise piste.
J'ai restifié l'exemple.

Ici, j'ai beaucoup de coupures de courants intempestives, qui peuvent durée de 5mn à 12h. C'est très fatiguant, surtout quand on envoit un message. Je ne sais plus où j'en suis. Ca met de la pagaille dans Windows à chaque fois. Mais il faut faire avec. L'ADSL est à 100Ko/s, à peine plus rapide qu'un modem classique.

Merci encore de votre patiente.
 

Pièces jointes

Re : indirection en VBA

Salut,

Il n'y a pas grand-chose à modifier pour examiner les 6 projets à condition que le tableau récapitulatif soit positionné (à chaque récupération) au même endroit.
Pour tester la nouvelle macro, change simplement le N° du projet, et lance la.
Pourquoi mets-tu les Dim avant Sub COPIE() ?

J'ai pris l'habitude de regrouper les déclarations de toutes les variables en première ligne.
En cas de problème, oubli, mauvais choix … je le repère plus vite.
Certains préfèrent créer un Module spécialement pour les déclarations.

Déjà, on a intérêt à rendre obligatoire les déclarations de variable (Outils, Options … dans l'éditeur). On se retrouve avec ligne Option explicit pour nous rappeler à l'ordre.

Tiens moi au courant si quelque chose cloche.

Bon Week-end à tous
@+
 

Pièces jointes

Re : indirection en VBA

Bonjour et mercie pour votre aide,
Surtout à Excel_lent, j'ai tout reparamétré tes instructions en VBA, ça marche très bien.
Autre chose, dans un classeur on peut tout cacher ou verrouiller et comment fait-on pour interdire l'accés aux Macros?
Même si l'onglet est verrouillé par un mot de passe, les Macros sont accessibles.

A bientôt.
 
Re : indirection en VBA

Bonjour,
Merci pour les conseils pour Vérrouiller les macros.
Ca marche très bien, à condition de ne pas oublier les mots de passe!
Personnellement je les consignés sur une feuille, dans une cellule avec la police de caractère Blanche sur fond Blanc.
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
484
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…