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

atteindre un cellule avec coordonnées aleatoire!

  • Initiateur de la discussion Initiateur de la discussion idimpact
  • Date de début Date de début

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 !

I

idimpact

Guest
Salut a tous!!

J'ai besoin de votre aide car je sèche sur une macro ou autre que je souhaite utiliser sous Excel 2007.

La situation est la suivante :

J'ai un classeur avec environ 30 feuilles correspondant à 30 personnes.
Feuille 1 = Thomas
Feuille 2 = Alice
etc...

Sur chaque feuille figure en colonne les dates de l'année et chaque ligne représente un projet.

Aujourd'hui je rentre a la main les heures que passent les collègues, Thomas a travaillé 3 heures sur le projet A le 10/01/2011. Je sélectionne la feuille thomas puis je place le nombre 3 au croisement de la ligne projet A et de la colonne "10/01/2001".

Demain je souhaiterai que Thomas via un formulaire entre le nom de son projet, la date du jour et aue l'information se classe automatiquement au bon endroit dans mon tableau!?

Suis-je clair???😕est-ce possible???😕
 

Pièces jointes

Re : atteindre un cellule avec coordonnées aleatoire!

Bonjour,
Le pb est relativement simple à résoudre, néanmoins il subsiste qq inconnues
-1: y a t-il un classeur pour l'année ou par mois ?
-2: la liste des affaires est-elle indiquée qq part, est-elle commune a tout le personnel ?
En attendant ces précisions...
A+
kjin
 
Re : atteindre un cellule avec coordonnées aleatoire!

Bonjour le fil 🙂,
Une proposition en pièce jointe, l'USF est lancé à l'ouverture ou avec Ctrl+Maj+t.
Bon WE 😎
 

Pièces jointes

Re : atteindre un cellule avec coordonnées aleatoire!

Merci JNP,ton fil est parfait. Je vais me pencher sur ta macro pour l'adapter à mon "vrai"fichier qui comporte plus de feuilles et de dates. J'espère pouvoir m'en sortir...

AU passage pour kjin le classeur comporte les dates pour l'année et la liste des affaires est commune à tout le personnel. Néanmoins si je partage ce fichier et que plus de 3 personnes travaillent dessus en même temps ça plante. Je ne sais pas s'il est possible que le formulaire se trouve dans un autre classeur Excel qui serait relié au fichier initial???

En tout cas merci de m'aider, ce forum m'aide énormément j'ai résolu plein de problématiques grâce à des discussions et j'apprends à grande vitesse. Je suis tous les jours surpris par les capacités d'Excel et je commence tout juste à m'attaquer à Visual Basic.

Merci beaucoup, votre aide et vos conseils me sont précieux.
 
Re : atteindre un cellule avec coordonnées aleatoire!

Re 🙂,
Merci JNP,ton fil est parfait. Je vais me pencher sur ta macro pour l'adapter à mon "vrai"fichier qui comporte plus de feuilles et de dates. J'espère pouvoir m'en sortir...
Plus de feuilles n'est pas un souci, vu qu'elles sont toutes proposées dans le combo. Par contre, si tu veux ne pas tenir compte de quelques feuilles, type Récap et BDD, modifie le code comme cela
Code:
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name <> "Récap" Or Feuille.Name <> "BDD" Then
ComboBox2.AddItem Feuille.Name
End If
Next Feuille
pour les dates, j'ai codé en dur, mais si ton fichier est mensuel, tu peux l'appeler "janvier 2011.xls" et à ce moment là
Code:
For MaDate = CDate(Replace(ThisWorkbook.Name, ".xls", "")) To _
    DateAdd("m", 1, CDate(Replace(ThisWorkbook.Name, ".xls", ""))) - 1
ComboBox1.AddItem Format(MaDate, "dd mmmm yyyy")
Next MaDate
te donnera toutes les dates de janvier pour celui-ci, toutes celles de février pour "février 2011.xls" pour février, à toi de changer les dates, ou de prévoir une macro qui crée les bons tableaux 😛...
Bon courage 😎
 
Dernière édition:
Re : atteindre un cellule avec coordonnées aleatoire!

Merci, C'est juste parfait! Il s'agit d'un fichier annuel donc le codage en dur pour les dates me va! ;-). Par contre la dernière question que je me pose est de savoir s'il est possible de faire apparaître le formulaire dans un autre classeur. Pour éviter que tous les collègues renseignent les infos en même temps sur le même fichier partagé ce qui ferait planté le ficher! Je voudrai que le collègue est un fichier sur sa session avec le formulaire et quand il le remplit les infos vont direct dans le fichier avec les tableaux, ou toutes les infos sont regroupées! C'est possible?

Et au passage si vous avez des conseils pour apprendre visual basic, des liens, des sites, des tutos, je suis preneur. Je vais faire un tour sur le forum voir si le sujet a déjà été abordé.
 
Re : atteindre un cellule avec coordonnées aleatoire!

Re 🙂, La première chose à essayer serait de partager le fichier, un certain nombre de macro passent en fichier partagé, dans ce cas précis, je ne sais pas...
Maintenant, remplir un autre fichier, c'est possible, mais... Tu te retrouves devant le même problème, si le fichier receveur est occupé par un autre, il va te falloir mettre en place une temporisation pour attendre que celui-ci soit libre... Ouvrir, remplir, fermer le receveur à chaque opération... Bref, un remède pire que le mal 😛...
Vu les données que tu stockes, pour du multi utilisateur, c'est Access qui serait adapté 🙄...
Bon courage 😎
 
Re : atteindre un cellule avec coordonnées aleatoire!

Pour info ta macro tourne sur le classeur partagé, cependant je n'ai pas encore fait le test avec beaucoup d'utilisateurs en meme temps sur le fichier. Le test est prévu pour demain matin (heure canadienne)!!

Si j'ai un soucis et que ca plante... Sur chaque poste des collègues je copie un fichier excel different avec ta macro et je lie(collage spécial avec liaison) chaque fichier à mon gros fichier avec tous les onglets! C'est du bricolage mais est-ce que le probleme de trop d'utilisateurs sur le meme fichier est resolu????
 
Re : atteindre un cellule avec coordonnées aleatoire!

Re 🙂, Si chaque collègue a un fichier sur son poste, j'ai un peu de mal à voir comment tu vas faire tes liaisons à travers le réseau, le plus logique serait qu'ils aient un fichier nominatif sur le serveur, et un fichier récapitulatif sur le même serveur 🙄...
C'est sûr qu'avec les liaisons, tu n'auras pas de plantage, mais pour ouvrir le récapitulatif, il faudra que tous les fichiers nominatifs soient refermés par leur utilisateur 😛...
Tu n'auras pas de contrôle si l'entrée est faite en double par 2 utilisateurs 🙁...
Enfin, avant de mettre en "production", attention au format utilisé pour saisir les heures, je n'ai mis aucun contrôle sur le TextBox 😉... Excel attends hh:mm🙂ss) et l'unité est 1 jour, soit 1h = 1/24... Donc si un saisit "1:00" et l'autre "1,5", l'addition donnera "13:00" 😕 !!! je te conseillerais d'ajouter dans le code de l'USF
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not TextBox1 Like "*[0-9]:[0-9][0-9]" Then
MsgBox "Vous devez saisir une valeur h:mm !", vbCritical + vbOKOnly, "Attention !"
Cancel = True
End If
End Sub
Bon courage 😎
 
Re : atteindre un cellule avec coordonnées aleatoire!

Re 🙂,
Le test exact serait
Code:
If Not (TextBox1 Like "[0-9]:[0-9][0-9]" Or TextBox1 Like "[0-1][0-9]:[0-9][0-9]" Or TextBox1 Like "2[0-3]:[0-9][0-9]") Then
"*" étant un caractère générique 😛...
Bon courage 😎
 
Re : atteindre un cellule avec coordonnées aleatoire!

Re, J'ai effectué quelques modifs a ton codage!! et la ça bug... En gros j'ai adapté le fichier pour un seul utilisateur, il ya un seul onglet temps. j'ai aussi intégré un calendrier pour selectionner la date qui apparait dans la textebox2. Le fichier ne passe plus sur le forum!!

Crois tu pouvoir m'aider avec le codage! le bug report est sur la ligne souslignée

Option Explicit
Dim MaDate As Date, Feuille As Worksheet, I As Integer, Cellule As Range, Réponse As Byte



Private Sub UserForm_Activate()
With Me
.StartUpPosition = 3
.Width = Application.Width
.Height = Application.Height
.Left = 0
.Top = 0
End With
End Sub


Private Sub TextBox2_Change()
ComboBox3.Clear
With Sheets("temps")
For I = 3 To .Range("A" & .Cells.Rows.Count).End(xlUp).Row
ComboBox3.AddItem .Range("A" & I)
Next I
End With
End Sub

Private Sub CommandButton1_Click()
If TextBox2 = "" Or ComboBox3 = "" Then
MsgBox "Vous devez remplir tous les champs !", vbCritical + vbOKOnly, "ATTENTION !"
Exit Sub
End If
With Sheets("temps")
Set Cellule = .Cells(.Cells.Find(ComboBox3.Text).Row, .Cells.Find(CDate(TextBox2.Text)).Column)If Cellule.Text <> "" Then
Réponse = MsgBox("La valeur " & Cellule.Text & " a déjà été rentrée." _
& vbCrLf & "Voulez-vous la remplacer ?", vbCritical + vbOKCancel, "Attention !")
If Réponse = vbCancel Then Exit Sub
End If
Cellule = TextBox1.Text
End With
End Sub

Private Sub CommandButton2_Click()
Unload Me
ActiveWorkbook.Save
Application.DisplayAlerts = False
Application.Quit
End Sub

Private Sub Label4_Click()

End Sub

Private Sub UserForm_Initialize()

End Sub

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
TextBox2.Value = DateClicked
End Sub

Private Sub UserForm_Click()
MonthView1.Value = Now
End Sub
 
Re : atteindre un cellule avec coordonnées aleatoire!

😕ok j'ai trouvé!! j'ai fait un renvoi dans ma colonne A vers une autre cellule (=Z3). en effet les lignes sont fusionnées sur la colonne A, toute les deux lignes. Aujourdhui la combox me propose projet A, ligne vide, projet Bm, ligne vide, projet C, ligne vide... je voudrais lui dire de regarder une ligne sur deux..

je sais pas si je suis clair?? 😎
 
Re : atteindre un cellule avec coordonnées aleatoire!

humhum!! désolé de mettre autant de message, mais comment mais cellule de la colonne A sont liées a un autre classeur et la macro cherche sur cette ligne non pas ma cellule de mon classeur mais elle suit la forumle présente dans la cellule vers un autre classeur

Set Cellule = .Cells(.Cells.Find(ComboBox3.Text).Row, .Cells.Find(CDate(TextBox2.Text)).Column)If
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

P
  • Question Question
Réponses
5
Affichages
1 K
pacalito85
P
J
Réponses
1
Affichages
657
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…