VBA excel touver une cellule dans un tableau
Résolu/Fermé
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
-
14 févr. 2011 à 14:11
japlo Messages postés 39 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 15 février 2011 - 15 févr. 2011 à 18:46
japlo Messages postés 39 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 15 février 2011 - 15 févr. 2011 à 18:46
A voir également:
- VBA excel touver une cellule dans un tableau
- Tableau croisé dynamique - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Liste déroulante excel - Guide
13 réponses
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 14/02/2011 à 14:32
Modifié par ccm81 le 14/02/2011 à 14:32
bonjour
quelques precisions me semblent nécessaires
Q1. est ce que tu cherches une formule excel ou un code VBA
Q2. tu cherches à localiser la cellule qui correspond par exemple a
(Lille, 25, pluie)
Q3. J'ai du mal à imaginer le tableau dans lequel tu cherches à localiser la cellule
peux tu nous en decrire une partie ou bien envoyer un exemple (format excel 2003) sur le site de ci-joint.fr (même avec données bidon)
bonne suite
quelques precisions me semblent nécessaires
Q1. est ce que tu cherches une formule excel ou un code VBA
Q2. tu cherches à localiser la cellule qui correspond par exemple a
(Lille, 25, pluie)
Q3. J'ai du mal à imaginer le tableau dans lequel tu cherches à localiser la cellule
peux tu nous en decrire une partie ou bien envoyer un exemple (format excel 2003) sur le site de ci-joint.fr (même avec données bidon)
bonne suite
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
14 févr. 2011 à 15:51
14 févr. 2011 à 15:51
Slt,
En fait je recherche un code vba,ensuite oui je recherche à faire corresponde 3 éléments pour trouve une cellule.
je te joint le fichier.
Ensuite lorque j'aurrai déterminer la cellule proprement dite il me restera à faire additionner les interventions à la suite mais avec le fichier se sera surement plus clair pour toi.
http://www.cijoint.fr/cjlink.php?file=cj201102/cijp7AhJEB.xls
Cordialement
En fait je recherche un code vba,ensuite oui je recherche à faire corresponde 3 éléments pour trouve une cellule.
je te joint le fichier.
Ensuite lorque j'aurrai déterminer la cellule proprement dite il me restera à faire additionner les interventions à la suite mais avec le fichier se sera surement plus clair pour toi.
http://www.cijoint.fr/cjlink.php?file=cj201102/cijp7AhJEB.xls
Cordialement
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
14 févr. 2011 à 18:09
14 févr. 2011 à 18:09
re
détails dans la feuille interventions, ça doit commencer a ressembler a ce que tu veux
les données saisies, ça se positionne (en principe) dans la feuille mois, sur la (cellule commune,jour+critere)
http://www.cijoint.fr/cjlink.php?file=cj201102/cijzGMbqw2.xls
bonne route
détails dans la feuille interventions, ça doit commencer a ressembler a ce que tu veux
les données saisies, ça se positionne (en principe) dans la feuille mois, sur la (cellule commune,jour+critere)
http://www.cijoint.fr/cjlink.php?file=cj201102/cijzGMbqw2.xls
bonne route
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
14 févr. 2011 à 18:57
14 févr. 2011 à 18:57
Slt,
nickel c'est exactement ce que je voulais demain j'etudirai plus en profondeur histoire de comprendre ce ce que tu as fait et j'aurrai surement une ou deux questions en passant avant de cloturer le sujet.
ensuite je me pencherai sur la maniere de calculer les interventions au fur et à mesure pour ça j'ai une petite idee.
Bonne soirée japlo
nickel c'est exactement ce que je voulais demain j'etudirai plus en profondeur histoire de comprendre ce ce que tu as fait et j'aurrai surement une ou deux questions en passant avant de cloturer le sujet.
ensuite je me pencherai sur la maniere de calculer les interventions au fur et à mesure pour ça j'ai une petite idee.
Bonne soirée japlo
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
14 févr. 2011 à 20:48
14 févr. 2011 à 20:48
re
une nouvelle version qui simplifie et met un peu d'ordre dans le code
http://www.cijoint.fr/cjlink.php?file=cj201102/cijIr1EugP.xls
RQ. les modules 1 & 2 n'on pas l'air utiles
bonne suite
une nouvelle version qui simplifie et met un peu d'ordre dans le code
http://www.cijoint.fr/cjlink.php?file=cj201102/cijIr1EugP.xls
RQ. les modules 1 & 2 n'on pas l'air utiles
bonne suite
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
Modifié par japlo le 15/02/2011 à 14:58
Modifié par japlo le 15/02/2011 à 14:58
Slt
les données saisies, ça se positionne (en principe) dans la feuille mois, sur la (cellule commune,jour+critere)
Je ne savais pas tu veux créer un onglet supplémentaire regroupent toutes les données.
RQ. les modules 1 & 2 n'on pas l'air utiles
Non ils ne sont pas utile.
Peux tu regarder j'ai rajouté une ligne, en fait j'essaye d'additionner les interventions au fir et a mesure.
'fermeture de userform4
Private Sub CommandButton1_Click()
Dim Tcritere
Dim Tmois
Dim licom As Long, nbli As Long, li As Long, cocri
Dim co As Long, nbco As Long
Dim trouve As Boolean
Tmois = Array(" ", "Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Jui", "Aou", "Sep", "Oct", "Nov", "Déc")
Tcritere = Array(" ", "SAP", "AVP", "INC", "DIV")
If CheckBox1 Or CheckBox2 Or CheckBox3 Or CheckBox4 Or CheckBox5 Or CheckBox6 _
Or CheckBox7 Or CheckBox8 Or CheckBox8 Or CheckBox9 Or CheckBox10 Or CheckBox11 Then
Sheets(Tmois(mois)).Activate
Sheets(Tmois(mois)).Select
With ActiveSheet
nbli = Range("A65536").End(xlUp).Row
trouve = False
For li = 3 To nbli
If .Cells(li, 1) = commune Then
trouve = True
licom = li ' ligne commune
Exit For
End If
Next li
If trouve Then
trouve = False
For li = 1 To 4
If Tcritere(li) = critere Then
trouve = True
cocri = li ' numéro critere
Exit For
End If
Next li
If trouve Then
.Cells(licom, 1 + (jour - 1) * 4 + cocri).Select
End If
End If
End With
Else
MsgBox "Vous devez sélectionner au moins un véhicule avant de valider...", vbInformation, "Merci de suivre les instructions..."
Exit Sub
End If
Unload Me
a$ = ActiveSheet.Name
Sheets("a$").[ActiveCell].Value = Sheets("a$").[ActiveCell].Value + IIf(commandebutton1.Value, 1, -1)
End Sub
Cordialement
les données saisies, ça se positionne (en principe) dans la feuille mois, sur la (cellule commune,jour+critere)
Je ne savais pas tu veux créer un onglet supplémentaire regroupent toutes les données.
RQ. les modules 1 & 2 n'on pas l'air utiles
Non ils ne sont pas utile.
Peux tu regarder j'ai rajouté une ligne, en fait j'essaye d'additionner les interventions au fir et a mesure.
'fermeture de userform4
Private Sub CommandButton1_Click()
Dim Tcritere
Dim Tmois
Dim licom As Long, nbli As Long, li As Long, cocri
Dim co As Long, nbco As Long
Dim trouve As Boolean
Tmois = Array(" ", "Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Jui", "Aou", "Sep", "Oct", "Nov", "Déc")
Tcritere = Array(" ", "SAP", "AVP", "INC", "DIV")
If CheckBox1 Or CheckBox2 Or CheckBox3 Or CheckBox4 Or CheckBox5 Or CheckBox6 _
Or CheckBox7 Or CheckBox8 Or CheckBox8 Or CheckBox9 Or CheckBox10 Or CheckBox11 Then
Sheets(Tmois(mois)).Activate
Sheets(Tmois(mois)).Select
With ActiveSheet
nbli = Range("A65536").End(xlUp).Row
trouve = False
For li = 3 To nbli
If .Cells(li, 1) = commune Then
trouve = True
licom = li ' ligne commune
Exit For
End If
Next li
If trouve Then
trouve = False
For li = 1 To 4
If Tcritere(li) = critere Then
trouve = True
cocri = li ' numéro critere
Exit For
End If
Next li
If trouve Then
.Cells(licom, 1 + (jour - 1) * 4 + cocri).Select
End If
End If
End With
Else
MsgBox "Vous devez sélectionner au moins un véhicule avant de valider...", vbInformation, "Merci de suivre les instructions..."
Exit Sub
End If
Unload Me
a$ = ActiveSheet.Name
Sheets("a$").[ActiveCell].Value = Sheets("a$").[ActiveCell].Value + IIf(commandebutton1.Value, 1, -1)
End Sub
Cordialement
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
15 févr. 2011 à 14:03
15 févr. 2011 à 14:03
Bonjour,
Bonjour ccm,
J'ai fait quelques modif dans ton code, il y a une ou deux remarque que j'ai mis en commentaires.
Pour que le code fonctionne deux modif sont nécessaire.
Les CheckBox 5 et 6 sont inversés, les remettre dans l'ordre. le 5 = le 6 et le 6 = le 5
Ensuite ajouter un 0 devant le N° des checkbox, CheckBox01, CheckBox02.. CheckBox09
Supprimer TOUT le code du module et remplacer par...
A+
Bonjour ccm,
J'ai fait quelques modif dans ton code, il y a une ou deux remarque que j'ai mis en commentaires.
Pour que le code fonctionne deux modif sont nécessaire.
Les CheckBox 5 et 6 sont inversés, les remettre dans l'ordre. le 5 = le 6 et le 6 = le 5
Ensuite ajouter un 0 devant le N° des checkbox, CheckBox01, CheckBox02.. CheckBox09
Supprimer TOUT le code du module et remplacer par...
'fermeture de userform4 Private Sub CommandButton1_Click() Dim Tcritere Dim Tmois Dim licom As Long, nbli As Long, li As Long, cocri Dim co As Long, nbco As Long Dim trouve As Boolean Tmois = Array(" ", "Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Jui", "Aou", "Sep", "Oct", "Nov", "Déc") Tcritere = Array(" ", "SAP", "AVP", "INC", "DIV") If VoirCheck Then Sheets(Tmois(Mois)).Activate ' Sheets(Tmois(mois)).Select 'Doublon With ActiveSheet 'ATTENTION, avec xlUp comprend également les lignes 16 et 17 (vides) 'ainsi que les lignes 18 à 21 'Le code ci-dessous recherche jusque la ligne 15 (ce qui est logique) nbli = Range("A3").End(xlDown).Row trouve = False For li = 3 To nbli If .Cells(li, 1) = commune Then trouve = True licom = li ' ligne commune Exit For End If Next li If trouve Then trouve = False For li = 1 To 4 If Tcritere(li) = critere Then trouve = True cocri = li ' numéro critere Exit For End If Next li If trouve Then .Cells(licom, 1 + (jour - 1) * 4 + cocri).Select End If End If End With Else MsgBox "Vous devez sélectionner au moins un véhicule avant de valider...", vbInformation, "Merci de suivre les instructions..." Exit Sub End If Unload Me a$ = ActiveSheet.Name End Sub 'Cette fonction remplace les 11 événement Change des CheckBox 'Et le test des 11 CheckBox pour savoir si au moins un est sélectiionner 'Evite aussi de devoir décrémenter la feuille si "DéCheck" un checkBox Private Function VoirCheck() As Boolean Dim Chk As Control, Lig As Byte With Sheets("Véhicules") For Each Chk In Me.Controls If TypeOf Chk Is MSForms.CheckBox Then If Chk.Value Then Lig = Val(Right(Chk.Name, 2)) Cells(Lig, 2) = Cells(Lig, 2) + 1: VoirCheck = True End If End If Next Chk End With End Function
A+
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 15/02/2011 à 16:01
Modifié par ccm81 le 15/02/2011 à 16:01
re
1. je ne savais pas tu veux créer un onglet supplémentaire regroupent toutes les données.
que veux tu dire? s'agit il de la feuille 'feuil1'? que veux tu en faire?
2. pour une MAJ des interventions dans la feuille mois, ça peut se faire après le trouvé du critère
ce qui rend inutile ce qu'il y a avant le end sub
bonne suite
PS. je viens de voir la proposition de lermite222, l'as tu prise en compte, ses RQ sont tout à fait justifiées et pertinentes.
1. je ne savais pas tu veux créer un onglet supplémentaire regroupent toutes les données.
que veux tu dire? s'agit il de la feuille 'feuil1'? que veux tu en faire?
2. pour une MAJ des interventions dans la feuille mois, ça peut se faire après le trouvé du critère
If trouve Then ' MAJ des interventions dans la feuille mois li = licom co = 1 + (jour - 1) * 4 + cocri .Cells(li, co).Value = .Cells(li, co).Value + 1 End If
ce qui rend inutile ce qu'il y a avant le end sub
bonne suite
PS. je viens de voir la proposition de lermite222, l'as tu prise en compte, ses RQ sont tout à fait justifiées et pertinentes.
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 15/02/2011 à 16:11
Modifié par ccm81 le 15/02/2011 à 16:11
re
je viens de prendre en compte la proposition de lermite222, le fichier modifié
j'ai remis dans l'ordre les vehicules dans la feuille 'véhicules' et modifié les noms des checkbox (n° sur 2 chiffres > RQ de lermite222)
j'ai supprimé les modules 1 et 2
http://www.cijoint.fr/cjlink.php?file=cj201102/cij627L48A.xls
bonne suite
je viens de prendre en compte la proposition de lermite222, le fichier modifié
j'ai remis dans l'ordre les vehicules dans la feuille 'véhicules' et modifié les noms des checkbox (n° sur 2 chiffres > RQ de lermite222)
j'ai supprimé les modules 1 et 2
http://www.cijoint.fr/cjlink.php?file=cj201102/cij627L48A.xls
bonne suite
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
15 févr. 2011 à 16:23
15 févr. 2011 à 16:23
Je viens de supprimer mon message car tu venais d'en envoyer un dans le même temps je comprend mieux maintenant ce que lermite222 voulais dire.
Merci à vous il ne me reste plus qu'a effectuer quelques verifications.
A+
Merci à vous il ne me reste plus qu'a effectuer quelques verifications.
A+
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
15 févr. 2011 à 16:33
15 févr. 2011 à 16:33
Re
Il semblerai que cette fonction ne donne aucun résultat dans l'onglet Véhicules ??
'Nombre de sortie par véhicule
'Cette fonction remplace les 11 événement Change des CheckBox
'Et le test des 11 CheckBox pour savoir si au moins un est sélectiionner
'Evite aussi de devoir décrémenter la feuille si "DéCheck" un checkBox
Private Function VoirCheck() As Boolean
Dim Chk As Control, Lig As Byte
With Sheets("Véhicules")
For Each Chk In Me.Controls
If TypeOf Chk Is MSForms.CheckBox Then
If Chk.Value Then
Lig = Val(Right(Chk.Name, 2))
Cells(Lig, 2) = Cells(Lig, 2) + 1: VoirCheck = True
End If
End If
Next Chk
End With
End Function
A+
Il semblerai que cette fonction ne donne aucun résultat dans l'onglet Véhicules ??
'Nombre de sortie par véhicule
'Cette fonction remplace les 11 événement Change des CheckBox
'Et le test des 11 CheckBox pour savoir si au moins un est sélectiionner
'Evite aussi de devoir décrémenter la feuille si "DéCheck" un checkBox
Private Function VoirCheck() As Boolean
Dim Chk As Control, Lig As Byte
With Sheets("Véhicules")
For Each Chk In Me.Controls
If TypeOf Chk Is MSForms.CheckBox Then
If Chk.Value Then
Lig = Val(Right(Chk.Name, 2))
Cells(Lig, 2) = Cells(Lig, 2) + 1: VoirCheck = True
End If
End If
Next Chk
End With
End Function
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 15/02/2011 à 16:41
Modifié par lermite222 le 15/02/2011 à 16:41
Re,
Petit oubli dans la fonction...
J'ai oublier les points.
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
Petit oubli dans la fonction...
Lig = Val(Right(Chk.Name, 2)) Cells(Lig, 2) = Cells(Lig, 2) + 1: VoirCheck = True
J'ai oublier les points.
Lig = Val(Right(Chk.Name, 2)) .Cells(Lig, 2) = .Cells(Lig, 2) + 1: VoirCheck = TrueA+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
japlo
Messages postés
39
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2011
2
15 févr. 2011 à 18:46
15 févr. 2011 à 18:46
Oui c'est beaucoup mieux ainsi merci à vous deux pour votre intervention.
Cordialement
A + japlo
Cordialement
A + japlo