Sélectionner une cellules sur une autre feuille avec VBA

Joel50

XLDnaute Nouveau
Bonjour
Je souhaite avec des boutons de commande, (pas de formulaire afin de pouvoir changer la couleur des boutons) sélectionner une cellule se trouvant sur une autre feuille en fonction d'une date sur la feuille d'origine.

J'ai réussi avec quelques recherche a créer la première partie du code, qui m'interpelle un peu du fait que je soit dans l'obligation de répéter 2 fois le nom de la feuille de destination pour que ça fonctionne, si ça peut être réduit tans mieux mais enfin ça marche.
Private Sub CommandButton1_Click()
Worksheets("Données").Activate
Worksheets("Données").Range("D15").Activate
End Sub
Maintenant, je ne parvient pas à sélectionner la cellule en fonction de la date, en F7 de la "feuil1" et dans la colonne A de "données".
Ci-joint un fichier pour exemple.
Merci d'avance de votre aide.
Joël
 

Pièces jointes

  • Classeur exemple5.xlsm
    25.3 KB · Affichages: 61
  • Classeur exemple5.xlsm
    25.3 KB · Affichages: 76
  • Classeur exemple5.xlsm
    25.3 KB · Affichages: 75

Staple1600

XLDnaute Barbatruc
Re : Sélectionner une cellules sur une autre feuille avec VBA

Bonjour à tous _______________EDITION: Bonjour fhoest (Bien vu j'avions point gérer les erreurs possible ;)
[/QUOTE]
Une possibilité
Code:
Private Sub CommandButton1_Click()
Dim L&
L = Application.Match([F7], [Date_Données], 0) + 8
Application.Goto Sheets("Données").Cells(L, 1), True
End Sub

PS: Test OK ici

EDITION : Variante tout en un ;) (en dédicace à Si...)
VB:
Private Sub CommandButton1_Click()
Application.Goto Sheets("Données").Cells(Application.Match([F7], [Date_Données], 0) + 8, 1), -1
End Sub
 
Dernière édition:

fhoest

XLDnaute Accro
Re : Sélectionner une cellules sur une autre feuille avec VBA

Bonjour,
peut être comme ça:
Code:
Private Sub CommandButton1_Click()
On Error Resume Next
Worksheets("Données").Range("A8:G15").Find(Sheets("Feuil1").Range("F7").Value, , , 1, 2).Activate
If Err.Number > 0 Then
Worksheets("Données").Range("A8").Activate
MsgBox "pas de cellule comportant cette date", vbInformation
On Error GoTo 0
End If
End Sub
A+

Edit salut Staples1600
 

Staple1600

XLDnaute Barbatruc
Re : Sélectionner une cellules sur une autre feuille avec VBA

Re


Donc en tenant compte de la gestion d'erreur du code de Fhoest ;)
Une version modifiée de ma première macro
VB:
Private Sub CommandButton1_Click()
On Error Resume Next
Application.Goto Sheets("Données").Cells(Application.Match([F7], [Date_Données], 0) + 8, 1), -1
If Err.Number > 0 Then
If Len([F7]) = 0 Then
MsgBox "La cellule: " & [F7].Address(0, 0) & " est vide!", 16
Else
MsgBox "La date renseignée: " & [F7].Text & " est introuvable.", 64
End If
On Error GoTo 0
End If
End Sub
 

Joel50

XLDnaute Nouveau
Re : Sélectionner une cellules sur une autre feuille avec VBA

Re

Encore un merci, les réponses sont postées avant que je finisse de poser les questions.

Juste que le dernier code et celui de fhoest ne fonctionne pas, j'ai compilé avec un des 2 premiers de Staple1600, ça fonctionne super.
Juste un truc, sur ma page de destination, le code "remonte" la cellule du tableau en haut à gauche, j'ai besoins d'avoir une vu plus centrée de mon tableau (beaucoup plus grand dans mon tableur initial).

Ci-joint fichier
Joël
 

Pièces jointes

  • Classeur exemple5.xlsm
    34.4 KB · Affichages: 60
  • Classeur exemple5.xlsm
    34.4 KB · Affichages: 60
  • Classeur exemple5.xlsm
    34.4 KB · Affichages: 65

fhoest

XLDnaute Accro
Re : Sélectionner une cellules sur une autre feuille avec VBA

Re,
rectification de mon code:
Code:
Private Sub CommandButton3_Click()
On Error Resume Next
Worksheets("Données").Activate
Worksheets("Données").Range("A8:G15").Find(Sheets("Feuil1").Range("F7").Value, , , 1, 2).Activate
If Err.Number > 0 Then
Worksheets("Données").Range("A8").Activate
MsgBox "pas de cellule comportant cette date", vbInformation
On Error GoTo 0
End If
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Re : Sélectionner une cellules sur une autre feuille avec VBA

Re


Pour éviter le "remontage" ;)
Private Sub CommandButton1_Click()
On Error Resume Next
Application.Goto Sheets("Données").Cells(Application.Match([F7], [Date_Données], 0) + 8, 1)
If Err.Number > 0 Then
If Len([F7]) = 0 Then
MsgBox "La cellule: " & [F7].Address(0, 0) & " est vide!", 16
Else
MsgBox "La date renseignée: " & [F7].Text & " est introuvable.", 64
End If
On Error GoTo 0
End If
End Sub
 

Joel50

XLDnaute Nouveau
Re : Sélectionner une cellules sur une autre feuille avec VBA

Re
Excellent, Merci

Je viens de l'adapter a mon fichier, c'est exactement ce que je voulais.

J'ai une trentaine de cellules auxquelles je doit appliquer ce code, j'y ai mis un bouton sur chaque, doit-je recopier entièrement mon code pour chacun, ou y a t il une partie du code qui puisse servir pour tous.

Mon code modifié pour 2 des cellules:
Private Sub AltC1_Click()
On Error Resume Next
Application.Goto Sheets("Data_Ration").Cells(Application.Match([Date], [Date_Données_Ration], 0) + 3, 53)
If Err.Number > 0 Then
If Len([Date]) = 0 Then
MsgBox "La cellule: " & [DateF7].Address(0, 0) & " est vide!", 16
Else
MsgBox "La date renseignée: " & [DateF7].Text & " est introuvable.", 64
End If
On Error GoTo 0
End If
End Sub

Private Sub AltC2_Click()
On Error Resume Next
Application.Goto Sheets("Data_Ration").Cells(Application.Match([Date], [Date_Données_Ration], 0) + 3, 56)
If Err.Number > 0 Then
If Len([Date]) = 0 Then
MsgBox "La cellule: " & [DateF7].Address(0, 0) & " est vide!", 16
Else
MsgBox "La date renseignée: " & [DateF7].Text & " est introuvable.", 64
End If
On Error GoTo 0
End If

End Sub

A la mise place, je me pose aussi une autre question, serait il possible et facilement réalisable de faire un petit formulaire avec une listbox dans laquelle serait chargée la liste des dates et qui récupérerai les données de la feuille "données" et transférerai les modifications.
J'ai commencé à le construire partiellement à partir de ceux qui me remplissent mes tableaux, qu'en pensez vous?
Voir bouton Formulaire Modif
Je ne sait si ma dernière phrase est compréhensible.
Joël
 

Pièces jointes

  • Classeur exemple5.xlsm
    43.5 KB · Affichages: 64
  • Classeur exemple5.xlsm
    43.5 KB · Affichages: 53
  • Classeur exemple5.xlsm
    43.5 KB · Affichages: 72

Staple1600

XLDnaute Barbatruc
Re : Sélectionner une cellules sur une autre feuille avec VBA

Re

Tu peux essayer dans un premier temps ceci
Tu mets le code dans un module standard
puis tu modifies ainsi le code de tes CommandButton
Code:
Private Sub AltC1_Click()
Call NOMMACRODANSLEMODULESTANDARD
End Sub
Code:
Private Sub AltC2_Click()
Call NOMMACRODANSLEMODULESTANDARD
End Sub

Dans un second temps, tu peux t'orienter vers une solution à base de module de classe
(voir les exemples existants dans les archives du forum)
 

Joel50

XLDnaute Nouveau
Re : Sélectionner une cellules sur une autre feuille avec VBA

Re
Je vais joué petits bras, d'ailleurs je ne sait pas faire beaucoup plus, j'ai recopier mon code autant de fois que nécessaire et ça marche impec pour toute les données qui peuvent être modifiée individuellement.

Un grand merci à Staple1600 et fhoest pour les conseils.

Je vais maintenant me mettre aux données que je peux modifier par groupe, j'aimerai le faire via un userform, je vais refaire un post après y avoir un peu travaillé mon fichier (et le fichier exemple)
Encore Merci :)
Joël
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 049
Membres
104 012
dernier inscrit
baffyt2