Choix classeur actif vba
Résolu/Fermé
A voir également:
- Vba activer un classeur
- Comment activer windows 10 - Guide
- Activer chromecast - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Activer pavé tactile windows 10 - Guide
- Activer office gratuitement - Guide
2 réponses
Utilisateur anonyme
3 avril 2008 à 14:23
3 avril 2008 à 14:23
Bonjour,
Pour répondre à sylvia
Le traitement s'effectue ici sur 2 classeurs, or chaque instruction
doit toujours pointer sur le bon classeur.
Lorsque que l'on travaille sur plusieurs objets de façon simultanné,
il est souhaitable de mémoriser l'objet de départ, pour ensuite y revenir.
Autre façon de procéder :
Comme je dis toujours en traitement les variables
Le bon type de données dans le bon type d'objet.
Il en est de même pour les déplacements entre feuilles ou classeurs.
Assurez-vous de toujours savoir à quel endroit vous appliqué une instruction.
À l'usage, vous maitriserez mieux cette notion.
Exemple sur des feuilles :
Exemple 2 sur feuilles
En espérant que ce soit plus clair ainsi !
Amicalement
Lupin
Pour répondre à sylvia
Le traitement s'effectue ici sur 2 classeurs, or chaque instruction
doit toujours pointer sur le bon classeur.
Sub Test() ' Varaible objet d'un classeur Dim WB_Principal As Workbook ' Instanciation de la variable pour connaître le classeur actif Set WB_Principal = ActiveWorkbook ' Amène le classeurs cible en avant plan, celui-ci devient le [ ActiveWorkbook ] Workbooks("Classeur2.xls").Activate ' Charge la valeur de la feuille 1 de la cellule H8 dans le TextBox ' De façon plus explicite on devrait écrire ' MonUserform.TextBox.Text = Sheets("Feuil1").Range("H8").value TextBox.text = Sheets("Feul1").Range("H8").Value ' Retourne au classeur de départ WB_Principal.Activate End Sub
Lorsque que l'on travaille sur plusieurs objets de façon simultanné,
il est souhaitable de mémoriser l'objet de départ, pour ensuite y revenir.
Autre façon de procéder :
' Suposons que cette routine est dans le classeur Maitre Sub Deux_Classeur() Dim Nom_Maitre As String Dim Nom_Esclave As String Nom_Esclave = "Classeur2.xls" 'Sauvegarde du nom du classeur actif Nom_Maitre = ActiveWorkbook.Name ' Chagement du classeur actif Workbooks(Nom_Esclave).Activate ' Insertion d'une donnée ou ' autre manipulation dans le classeur actif Range("A1").Value = "UneValeur" ' Retour au classeur Maitre Workbooks(Nom_Maitre).Activate End Sub '
Comme je dis toujours en traitement les variables
Le bon type de données dans le bon type d'objet.
Il en est de même pour les déplacements entre feuilles ou classeurs.
Assurez-vous de toujours savoir à quel endroit vous appliqué une instruction.
À l'usage, vous maitriserez mieux cette notion.
Exemple sur des feuilles :
Sub ChangeFeuille() Dim Nom_Fle_Maitre As String Dim Nom_Fle_Esclave As String Dim Valeur As Variant Nom_Fle_Maitre = ActiveSheet.Name Valeur = Range("B4").Value Sheets(Nom_Fle_Esclave).Select Range("B4").Value = Valeur Sheets(Nom_Fle_Maitre).Select End Sub '
Exemple 2 sur feuilles
Sub ChangeFeuille2() Dim Nom_Fle_Maitre As Worksheet Dim Nom_Fle_Esclave As Worksheet Dim Valeur As Variant Sheets(1).Select Set Nom_Fle_Maitre = ActiveSheet Set Nom_Fle_Esclave = Sheets(2) ' Ici, même si nous avons instancié ' l'objet de la feuille Excel [ Sheets(2) ] ' la feuille active est toujours le feuille 1 Valeur = Range("B4").Value Sheets(Nom_Fle_Esclave).Select Range("B4").Value = Valeur Sheets(Nom_Fle_Maitre).Select End Sub '
En espérant que ce soit plus clair ainsi !
Amicalement
Lupin