Selection onglet et Variable pour nom xls
Résolu
Shana00
Messages postés
87
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je dois automatisé un système qui prend des valeur sur une feuille , les valeurs sont toujours au même endroit et doivent aller toujours a la même place sur une feuille d'analyse.
Ayant commencer le VBA excel depuis peu je suis un peu perdu.
Cells(a, 18).Select
ActiveCell.FormulaR1C1 = "='[Nom.xls]SS2'!R29C17"
( a est une variable déjà défini dans mon code )
J'aimerai changer SS2 par sheet(1) ou un autre truc ce qui me permettrai de se baladé entre les onglet en fonction de ma boucle.
J'aimerai également savoir si c'est possible d'obtenir le lien du excel exemple E:\Dossier3\Dossier2\Nom.Xls
Et juste extraire le Nom.xls une fois que la personne a rentrer le chemin complet ( en partant du fait que sa ne sera jamais le même chemin ni le même nombre de caractère pour le nom du classeur)
Je suis désolé de ne pas pouvoir donner plus d'information mais toute mes données sont confidentiel , je vous ai donner un exemple d'utilisation , j'espère avoir donner asser d'info pour trouver une solution
Cordialement
Je dois automatisé un système qui prend des valeur sur une feuille , les valeurs sont toujours au même endroit et doivent aller toujours a la même place sur une feuille d'analyse.
Ayant commencer le VBA excel depuis peu je suis un peu perdu.
Cells(a, 18).Select
ActiveCell.FormulaR1C1 = "='[Nom.xls]SS2'!R29C17"
( a est une variable déjà défini dans mon code )
J'aimerai changer SS2 par sheet(1) ou un autre truc ce qui me permettrai de se baladé entre les onglet en fonction de ma boucle.
J'aimerai également savoir si c'est possible d'obtenir le lien du excel exemple E:\Dossier3\Dossier2\Nom.Xls
Et juste extraire le Nom.xls une fois que la personne a rentrer le chemin complet ( en partant du fait que sa ne sera jamais le même chemin ni le même nombre de caractère pour le nom du classeur)
Je suis désolé de ne pas pouvoir donner plus d'information mais toute mes données sont confidentiel , je vous ai donner un exemple d'utilisation , j'espère avoir donner asser d'info pour trouver une solution
Cordialement
A voir également:
- Selection onglet et Variable pour nom xls
- Raccourci rouvrir onglet fermé - Guide
- Nom pour facebook stylé - Guide
- Nom sonnerie iphone - Forum iPhone
- Nom de l'adresse - Forum Jeux vidéo
- Nom de compte steam exemple - Forum Jeux vidéo
2 réponses
Bonjour,
Voici un code qui devrait répondre à tes deux questions :
Voici un code qui devrait répondre à tes deux questions :
Sub test() Dim Feuille As Variant For Each Feuille In Array("Feuil1", "Feuil2", "Feuil3") Debug.Print "='[Nom.xls]" & Feuille & "'!R29C17" Next Dim NomFic As String NomFic = Split("E:\Dossier3\Dossier2\Nom.Xls", "\")(UBound(Split("E:\Dossier3\Dossier2\Nom.Xls", "\"))) MsgBox NomFic End Sub
Bonjour ,
Merci pour cette réponse rapide .
Je voudrai quelque information sur la boucle car le nombre de feuil n'est pas défini ( j'avoue n'avoir jamais vu de boucle for each mise a par en web avec les tableaux ) j'ai fais des boucle basique jusqu'à maintenant for et DO
J'ai exécuté le code , ça me fait toujours 1 seule ligne mais cette fois sans les valeurs , admettons la j'ai 5 feuille différente et je dois recopier 5 valeur au même endroit de ces 5 feuille différente sur un autre classeur. donc j'ai fais ceci
Je n'ai pas encore mis la fonction pour définir Nom.Xls , j'utilise le vrai nom d'un classeur mais pour éviter les problème je l'ai modifier , j'automatiserai avec ton code une fois que la parti fonctionnera
En tout cas je te remercie infiniment
Cordialement
Merci pour cette réponse rapide .
Je voudrai quelque information sur la boucle car le nombre de feuil n'est pas défini ( j'avoue n'avoir jamais vu de boucle for each mise a par en web avec les tableaux ) j'ai fais des boucle basique jusqu'à maintenant for et DO
J'ai exécuté le code , ça me fait toujours 1 seule ligne mais cette fois sans les valeurs , admettons la j'ai 5 feuille différente et je dois recopier 5 valeur au même endroit de ces 5 feuille différente sur un autre classeur. donc j'ai fais ceci
Sub Macro4()
Dim a As Integer
Dim Feuille As Variant
a = 43
For Each Feuille In Array("Feuil1", "Feuil2", "Feuil3")
Cells(a, 18).Select
Debug.Print "='[Nom.xls]" & Feuille & "'!R29C17"
Cells(a, 19).Select
Debug.Print "='[Nom.xls]" & Feuille & "'!R38C11"
Cells(a, 20).Select
Debug.Print "='[Nom.xls]" & Feuille & "'!R67C14"
Cells(a, 21).Select
Debug.Print "='[Nom.xls]" & Feuille & "'!R67C15"
Cells(a, 23).Select
Debug.Print "='[Nom.xls]" & Feuille & "'!R17C17"
Next
End Sub
Je n'ai pas encore mis la fonction pour définir Nom.Xls , j'utilise le vrai nom d'un classeur mais pour éviter les problème je l'ai modifier , j'automatiserai avec ton code une fois que la parti fonctionnera
En tout cas je te remercie infiniment
Cordialement
Cela serai possible d'utiliser
Et remplacer feuille par quelque chose qui permettrai de suivre via par exemple un sheet(i)
Je suis vrai désoler j'ai toujours fais du VBA access objet , d'un seul coup passer sur excel ça change et j'ai perdu mes petit repère
For i = 1 To Sheets.Count
Cells(a, 18).Select
ActiveCell.FormulaR1C1 = "='[Nom.xls]" & Feuille & "'!R29C17"
next i
Et remplacer feuille par quelque chose qui permettrai de suivre via par exemple un sheet(i)
Je suis vrai désoler j'ai toujours fais du VBA access objet , d'un seul coup passer sur excel ça change et j'ai perdu mes petit repère
Bien sur que oui.
Supposons que les noms de tes feuilles soient "Sheet1", "Sheet2", "Sheet3" etc... Tu peux écrire comme ceci :
*L'important dans ce code est de différencier le nom en "dur" Sheet (qui de ce fait se retrouve entre les guillemets) et la partie variable de ce nom (qui doit être sortie des guillemets).
Supposons que les noms de tes feuilles soient "Sheet1", "Sheet2", "Sheet3" etc... Tu peux écrire comme ceci :
For i = 1 To Sheets.Count Cells(a, 18).Select ActiveCell.FormulaR1C1 = "='[Nom.xls]Sheet" & i & "'!R29C17" next i
*L'important dans ce code est de différencier le nom en "dur" Sheet (qui de ce fait se retrouve entre les guillemets) et la partie variable de ce nom (qui doit être sortie des guillemets).