[RÉSOLU] VBA : ctrl + F évolutif et sélection de la cellule

dionys0s

XLDnaute Impliqué
Bonjour tout le monde

Lorsque mon Classeur1 est ouvert, je clique sur un bouton, et ça m'ouvre mon Classeur2 sur le bon onglet , mais la cellule sélectionnée du Classeur2 est systématiquement la cellule A1.
J'aimerais en fait que la cellule active du Classeur2 à son ouverture soit la cellule dont la valeur est égale à la valeur de la cellule B8 du Classeur1 au moment où je clique sur le bouton.

La macro affectée au bouton est la suivante, et j'aimerais comprendre quoi rajouter pour sélectionner la bonne cellule directement. J'ai bien essayé avec l'enregistreur de macro et un ctrl + F mais impossible.

Le code :

Code:
Sub Suite()

Application.ScreenUpdating = False

Application.ShowWindowsInTaskbar = False

Dim Mois

Mois = [A1]

    ChDir _
        "X:\répertoire"

    Workbooks.Open Filename:= _
        "X:\répertoire\Classeur2.xls"
    Sheets(Mois).Select

    Windows("Classeur1.xls"). _
        Activate

Application.ShowWindowsInTaskbar = True

Application.ScreenUpdating = True

End Sub

D'avance merci pour votre aide. Je suis disponible pour toute question ou précision ou éclaircissement.
 

Pièces jointes

  • Classeur1.xls
    16 KB · Affichages: 47
  • Classeur2.xls
    14 KB · Affichages: 50
  • Classeur1.xls
    16 KB · Affichages: 53
  • Classeur2.xls
    14 KB · Affichages: 56
  • Classeur1.xls
    16 KB · Affichages: 60
  • Classeur2.xls
    14 KB · Affichages: 66
Dernière édition:

Etienne2323

XLDnaute Impliqué
Re : VBA : ctrl + F évolutif et sélection de la cellule

Bonjour dionys0s
voici comment je procéderais. Je vous ai commenté le code pour que vous puissiez vous y retrouver. Je n'ai pas testé sur vos classeurs par contre.

Bonne continuité.

Coridalement,

Étienne


Code:
Sub Suite()

Dim Mois
Dim fichierOUVERT As String, Le_Nom_Fichier As String
Dim Le_FichierOUVERT, Valeur

Application.ScreenUpdating = False
Application.ShowWindowsInTaskbar = False

'1re étape : On va s'assurer de travailler sur le bon classeur
Mon_Fichier = ThisWorkbook.Name
Windows(Mon_Fichier).Activate

Sheets(Mois).Select
'On va prendre dans une variable la valeur que tu désires chercher dans ton 2e classeur
Valeur = Cells(8, 2).Value
Mois = Cells(1, 1).Value

'Ton chemin
CHEMIN = "X:\répertoire\"
'Ton fichier à ouvrir
Le_Nom_Fichier = "Classeur2.xls"

'On va faire une petite recherche parmi les fichiers déjà ouvert pour pas l'ouvrir de nouveau s'il
'est déjà ouvert
fichierOUVERT = "non"
For Each Le_FichierOUVERT In Application.Workbooks 'On parcours chacun des classeurs Excel ouverts.
    If Le_FichierOUVERT.Name = Le_Nom_Fichier Then 'Vérifie s'il n'est pas déjà ouvert.
        fichierOUVERT = "oui" 'Switch
        Exit For 'Sort de la boucle
    End If
Next Le_FichierOUVERT 'Passe au prochain fichier

If fichierOUVERT <> "oui" Then 'Une fois la boucle complétée, si la Switch n'a pas été tournée à oui, alors ouvre le fichier
    Set Le_FICHIER = Workbooks.Open(Filename:=CHEMIN & Le_Nom_Fichier, UpdateLinks:=0)
End If

'On va aller recherche la valeur saisie plus haut dans la variable valeur dans les cellules du classeur qu'on
'vient d'ouvrir
Set Ma_Val = Cells.Find(Valeur, LookIn:=xlValues, LookAt:=xlWhole)
If Not Ma_Val Is Nothing Then
    Cells(Ma_Val.Row, Ma_Val.Column).Select 'On sélectionne la cellule qui correspond
Else
    Exit Sub 'Si jamais la recherche ne trouve pas, alors ça prend un plan B. Tu peux changer le code ici comme bon te semblera.
End If

Application.ShowWindowsInTaskbar = True

End Sub

À noter, cette ligne de code n'est pas nécessaire quand la macro se termine.
Code:
Application.ScreenUpdating = True
 
Dernière édition:

dionys0s

XLDnaute Impliqué
Re : VBA : ctrl + F évolutif et sélection de la cellule

Etienne ta solution me semblait un peu dure à appliquer du coup j'ai continué à tâtonner et j'ai fini par trouver (tout seul !!! *youpi*)

Donc à l'attention de ceux qui tomberaient sur ce fil plus tard voici ma solution à mon problème :

j'ai rajouté dans le code (en gras) :

Code:
Sub Suite()

[B]Dim MoisAnnée As Date

MoisAnnée = [B8][/B]

    ChDir _
        "X:\Finance\CA - Droits d'auteurs - conduites de show\2010\CA + Conduites de show + Royalties\NE PAS TOUCHER"

    Workbooks.Open Filename:= _
        "X:\Finance\CA - Droits d'auteurs - conduites de show\2010\CA + Conduites de show + Royalties\NE PAS TOUCHER\ALIN HT HSG.xls"
    Sheets(Mois).Select
    [B]Rows("2:2").Find(MoisAnnée, LookIn:=xlFormulas, LookAt:=xlWhole).Select[/B]
    Windows("CA + Conduites de show + Royalties au 30-09-2010 (macro).xls"). _
        Activate

Application.ShowWindowsInTaskbar = True

Application.ScreenUpdating = True

End Sub

Du coup je fige la ligne de recherche mais comme ma trame est fixe c'est pas un problème.

Lilalilaloum.
 

Discussions similaires

Réponses
7
Affichages
364
Réponses
6
Affichages
355

Statistiques des forums

Discussions
312 564
Messages
2 089 705
Membres
104 265
dernier inscrit
TofLia