Macro date la plus récente chronologique

kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012 - 25 juil. 2012 à 16:18
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012 - 27 juil. 2012 à 11:10
Bonjour, j'ai un fichier excel qui a une macro et qui va chercher les valeurs dans une base de donnée. Il recupere les informations des personnes, la date d'intervention et d'autre information concernant les interventions.

J'ai réalisé plusieurs intervention chez ces personnes et je souhaiterais qu'apparaissent uniquement la dernière date d'intervention dans mon tableau excel.

Je vous joints ci dessous la macro pouvez me dire ce qu'il faut modifier et où car je suis très nul....

En vous remerciant.

Cordialement.

Macro :

Sub BilanAbosControlesFactures()
Dim adocnx As New ADODB.Connection

Dim abo As New ADODB.Recordset
Dim parc As New ADODB.Recordset
Dim prop As New ADODB.Recordset
Dim controle As New ADODB.Recordset
Dim fact_vis As New ADODB.Recordset

Dim texte_SQL As String

Dim MesParcelles As String
Dim i As Integer
Dim j As Integer
Dim idAbo As Integer

'connexion ADO au fichier
Dim cheminBase As String
cheminBase = ConstruireChaineConnexion()

If (cheminBase <> "") Then
'associer le chemin à la connexion
adocnx.ConnectionString = cheminBase
'ouvrir la connexion
adocnx.Open
'Suppression des données
Range("A3:R65536").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

i = 3 'on commencera d'écrire après les 2 lignes d'entêtes

'chercher les abonnés
texte_SQL = "SELECT id_abonne as id, abo_nom, abo_prenom, abo_bat_num_rue, abo_bat_adresse, abo_bat_cp, abo_bat_ville FROM abo ORDER BY id_abonne"
abo.Open texte_SQL, adocnx
If Not (abo.EOF) Then
abo.MoveFirst
End If

While Not (abo.EOF)
Separateur (i)

'écrire l'abonné
idAbo = abo.Fields("id").Value
Cells(i, 1).Value = abo.Fields("id").Value
Cells(i, 2).Value = abo.Fields("abo_nom").Value
Cells(i, 3).Value = abo.Fields("abo_prenom").Value
Cells(i, 4).Value = abo.Fields("abo_bat_num_rue").Value
Cells(i, 5).Value = abo.Fields("abo_bat_adresse").Value
Cells(i, 6).Value = abo.Fields("abo_bat_cp").Value
Cells(i, 7).Value = abo.Fields("abo_bat_ville").Value

'chercher ses parcelles
texte_SQL = "SELECT parc_section, parc_num_cadas FROM parcelles INNER JOIN parcelles_abo ON parcelles_abo.parc_id=parcelles.parc_id WHERE parcelles_abo.id_abonne=" & idAbo
parc.Open texte_SQL, adocnx
MesParcelles = "" 'contiendra la liste des parcelles
If Not (parc.EOF) Then
parc.MoveFirst
End If
'écrire ses parcelles
While Not (parc.EOF)
'constituer la liste des parcelles
MesParcelles = MesParcelles & parc.Fields("parc_section").Value & " " & parc.Fields("parc_num_cadas").Value & " ; "
parc.MoveNext
Wend 'fin du while not (parc.eof)
If (MesParcelles <> "") Then
'inscrire la liste dans la cellule adaptée
Cells(i, 8).Value = Left(mesparcellest, Len(MesParcelles) - 3)
End If
'fermer ses parcelles
parc.Close

'chercher ses propriétaires
texte_SQL = "SELECT prop_nom, prop_prenom, prop_adresse, prop_cp, prop_ville FROM abo_props WHERE abo_props.id_abonne=" & idAbo & " AND abo_props.prop_id IN (SELECT min(p.prop_id) FROM abo_props as p WHERE p.id_abonne=abo_props.id_abonne)"
prop.Open texte_SQL, adocnx
If Not (prop.EOF) Then
prop.MoveFirst
End If
'écrire ses propriétaires
While Not (prop.EOF)
Cells(i, 9).Value = prop.Fields("prop_nom").Value
Cells(i, 10).Value = prop.Fields("prop_prenom").Value
Cells(i, 11).Value = prop.Fields("prop_adresse").Value
Cells(i, 12).Value = prop.Fields("prop_cp").Value
Cells(i, 13).Value = prop.Fields("prop_ville").Value
prop.MoveNext
Wend 'fin du While Not (prop.EOF)
'fermer ses propriétaires
prop.Close
'chercher ses contrôles
texte_SQL = "SELECT vis_id, vis_date, vis_type, vis_inst_ok, vis_inst_travaux, vis_cptrendu FROM visites WHERE visites.vis_id IN (SELECT visites_abos.vis_id FROM visites_abos WHERE visites_abos.vis_id=visites.vis_id AND visites_abos.id_abonne=" & idAbo & ") AND visites.vis_programmation=0 ORDER BY visites.vis_date"
controle.Open texte_SQL, adocnx
If Not (controle.EOF) Then
controle.MoveFirst
End If
j = i
'écrires ses contrôles
While Not (controle.EOF)
Cells(j, 14).Value = CDate(controle.Fields("vis_date").Value)
Cells(j, 15).Value = TypeVisite(controle.Fields("vis_type").Value)
If (controle.Fields("vis_inst_ok").Value = 0) Then
Cells(j, 16).Value = Conformite(controle.Fields("vis_inst_ok").Value) & " " & Travaux(controle.Fields("vis_inst_travaux").Value)
Else
Cells(j, 16).Value = Conformite(controle.Fields("vis_inst_ok").Value)
End If
Cells(j, 17).Value = controle.Fields("vis_cptrendu").Value
'chercher les factures de contrôles
texte_SQL = "SELECT fact_ope.ope_dd_facturation FROM fact_ope INNER JOIN fact_visite ON fact_visite.fact_id=fact_ope.fact_id WHERE fact_visite.vis_id=" & controle.Fields("vis_id").Value
fact_vis.Open texte_SQL, adocnx
If Not (fact_vis.EOF) Then
fact_vis.MoveFirst
End If
'écrire les factures de contrôles
While Not (fact_vis.EOF)
Cells(j, 18).Value = fact_vis.Fields("ope_dd_facturation").Value
fact_vis.MoveNext
Wend 'fin du While Not (fact_vis.EOF)
'fermer les factures de contrôles
fact_vis.Close
j = j + 1 'passer à la ligne suivante pour le contrôle suivant
controle.MoveNext
Wend 'fin du While Not (controle.EOF)
'fermer ses contrôles
controle.Close
'passer à la bonne ligne en fonction du nombre de contrôles
If (j > i + 1) Then
i = j
Else
i = i + 1
End If
'abonné suivant
abo.MoveNext
Wend 'fin du While Not (abo.EOF)
abo.Close
Separateur (i)
MsgBox ("Terminé.")
'fermer la connexion
adocnx.Close

End If 'fin du If (cheminBase <> "") Then

End Sub

21 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
25 juil. 2012 à 18:37
Bonjour,

Très difficile de lire un code non indenté.

D' après ce que j' ai pu dèceler, il te suffit de rechercher les interventions dans un ordre croissant des dates.Puis de se positionner sur le dernier enregistrement.
Ceci dit tu peux faire une requete regroupement.



[] Ce qui va sans dire. va mieux en le disant.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
25 juil. 2012 à 19:02
Bonjour,

Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
25 juil. 2012 à 19:10
Merci pour vos réponses alors je corrige mon erreur

Comment faire une reqUete regroupement ?

Sub BilanAbosControlesFactures()
Dim adocnx As New ADODB.Connection

Dim abo As New ADODB.Recordset
Dim parc As New ADODB.Recordset
Dim prop As New ADODB.Recordset
Dim controle As New ADODB.Recordset
Dim fact_vis As New ADODB.Recordset

Dim texte_SQL As String

Dim MesParcelles As String
Dim i As Integer
Dim j As Integer
Dim idAbo As Integer

'connexion ADO au fichier
Dim cheminBase As String
cheminBase = ConstruireChaineConnexion()

If (cheminBase <> "") Then
'associer le chemin à la connexion
adocnx.ConnectionString = cheminBase
'ouvrir la connexion
adocnx.Open
'Suppression des données
Range("A3:R65536").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

i = 3 'on commencera d'écrire après les 2 lignes d'entêtes

'chercher les abonnés
texte_SQL = "SELECT id_abonne as id, abo_nom, abo_prenom, abo_bat_num_rue, abo_bat_adresse, abo_bat_cp, abo_bat_ville FROM abo ORDER BY id_abonne"
abo.Open texte_SQL, adocnx
If Not (abo.EOF) Then
abo.MoveFirst
End If

While Not (abo.EOF)
Separateur (i)

'écrire l'abonné
idAbo = abo.Fields("id").Value
Cells(i, 1).Value = abo.Fields("id").Value
Cells(i, 2).Value = abo.Fields("abo_nom").Value
Cells(i, 3).Value = abo.Fields("abo_prenom").Value
Cells(i, 4).Value = abo.Fields("abo_bat_num_rue").Value
Cells(i, 5).Value = abo.Fields("abo_bat_adresse").Value
Cells(i, 6).Value = abo.Fields("abo_bat_cp").Value
Cells(i, 7).Value = abo.Fields("abo_bat_ville").Value

'chercher ses parcelles
texte_SQL = "SELECT parc_section, parc_num_cadas FROM parcelles INNER JOIN parcelles_abo ON parcelles_abo.parc_id=parcelles.parc_id WHERE parcelles_abo.id_abonne=" & idAbo
parc.Open texte_SQL, adocnx
MesParcelles = "" 'contiendra la liste des parcelles
If Not (parc.EOF) Then
parc.MoveFirst
End If
'écrire ses parcelles
While Not (parc.EOF)
'constituer la liste des parcelles
MesParcelles = MesParcelles & parc.Fields("parc_section").Value & " " & parc.Fields("parc_num_cadas").Value & " ; "
parc.MoveNext
Wend 'fin du while not (parc.eof)
If (MesParcelles <> "") Then
'inscrire la liste dans la cellule adaptée
Cells(i, 8).Value = Left(mesparcellest, Len(MesParcelles) - 3)
End If
'fermer ses parcelles
parc.Close

'chercher ses propriétaires
texte_SQL = "SELECT prop_nom, prop_prenom, prop_adresse, prop_cp, prop_ville FROM abo_props WHERE abo_props.id_abonne=" & idAbo & " AND abo_props.prop_id IN (SELECT min(p.prop_id) FROM abo_props as p WHERE p.id_abonne=abo_props.id_abonne)"
prop.Open texte_SQL, adocnx
If Not (prop.EOF) Then
prop.MoveFirst
End If
'écrire ses propriétaires
While Not (prop.EOF)
Cells(i, 9).Value = prop.Fields("prop_nom").Value
Cells(i, 10).Value = prop.Fields("prop_prenom").Value
Cells(i, 11).Value = prop.Fields("prop_adresse").Value
Cells(i, 12).Value = prop.Fields("prop_cp").Value
Cells(i, 13).Value = prop.Fields("prop_ville").Value
prop.MoveNext
Wend 'fin du While Not (prop.EOF)
'fermer ses propriétaires
prop.Close
'chercher ses contrôles
texte_SQL = "SELECT vis_id, vis_date, vis_type, vis_inst_ok, vis_inst_travaux, vis_cptrendu FROM visites WHERE visites.vis_id IN (SELECT visites_abos.vis_id FROM visites_abos WHERE visites_abos.vis_id=visites.vis_id AND visites_abos.id_abonne=" & idAbo & ") AND visites.vis_programmation=0 ORDER BY visites.vis_date"
controle.Open texte_SQL, adocnx
If Not (controle.EOF) Then
controle.MoveFirst
End If
j = i
'écrires ses contrôles
While Not (controle.EOF)
Cells(j, 14).Value = CDate(controle.Fields("vis_date").Value)
Cells(j, 15).Value = TypeVisite(controle.Fields("vis_type").Value)
If (controle.Fields("vis_inst_ok").Value = 0) Then
Cells(j, 16).Value = Conformite(controle.Fields("vis_inst_ok").Value) & " " & Travaux(controle.Fields("vis_inst_travaux").Value)
Else
Cells(j, 16).Value = Conformite(controle.Fields("vis_inst_ok").Value)
End If
Cells(j, 17).Value = controle.Fields("vis_cptrendu").Value
'chercher les factures de contrôles
texte_SQL = "SELECT fact_ope.ope_dd_facturation FROM fact_ope INNER JOIN fact_visite ON fact_visite.fact_id=fact_ope.fact_id WHERE fact_visite.vis_id=" & controle.Fields("vis_id").Value
fact_vis.Open texte_SQL, adocnx
If Not (fact_vis.EOF) Then
fact_vis.MoveFirst
End If
'écrire les factures de contrôles
While Not (fact_vis.EOF)
Cells(j, 18).Value = fact_vis.Fields("ope_dd_facturation").Value
fact_vis.MoveNext
Wend 'fin du While Not (fact_vis.EOF)
'fermer les factures de contrôles
fact_vis.Close
j = j + 1 'passer à la ligne suivante pour le contrôle suivant
controle.MoveNext
Wend 'fin du While Not (controle.EOF)
'fermer ses contrôles
controle.Close
'passer à la bonne ligne en fonction du nombre de contrôles
If (j > i + 1) Then
i = j
Else
i = i + 1
End If
'abonné suivant
abo.MoveNext
Wend 'fin du While Not (abo.EOF)
abo.Close
Separateur (i)
MsgBox ("Terminé.")
'fermer la connexion
adocnx.Close

End If 'fin du If (cheminBase <> "") Then

End Sub
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
25 juil. 2012 à 19:19
Bonjour,

C'est déjà un bon dé"but, pour faciliter la lecture, ajoutes aussi l'indentation comme te l'a conseillé Libre_Max.

Essayes aussi d'appliquer sa suggestion de résolution.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
25 juil. 2012 à 20:25
je peux modifier mes messages ou je suis obligé de réécrire tout ?

Et comment on fait option explicit et option strict

Merci pour vos aides
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
25 juil. 2012 à 22:30
Re-Bonsoir,
je peux modifier mes messages ou je suis obligé de réécrire tout ?

non, c' est plus nécessaire.Mais si tu devais le faire pour plus d' éclaircissement, fais le de façon circoncise, pour aller à l' essentiel.
Déjà tu dois nous préciser quelle partie du code te pose des soucis..

Comment faire une reqUete regroupement ?


Si on prend la partie recherche des contrôles, ça serais difficicile de te donner un exemple.Vu que tu utilises une requete imbriquée.

Et comment on fait option explicit et option strict

Les deux instructions doivent être placées tout au début de la partie declaration de ton module.




[] Ce qui va sans dire. va mieux en le disant.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
25 juil. 2012 à 22:38
Pour faure encore plus simple, donnes nous une idée sur les tables qui sont en jeu.Avec la structure de chacune d' elle, et une description de ce que tu tentes de faire.








[] Ce qui va sans dire. va mieux en le disant.
0
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
26 juil. 2012 à 07:58
J'aimerais dans mon tableau excel faire afficher le dernier contrôle réalisé chez chaque particulier et ce qui va avec facture.....

Donc je suppose ce qui est à modifier ou à insérer ce situe dés la partie chercher ces contrôles.

En vous remerciant pour votre aide.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
26 juil. 2012 à 14:06
Bonjour,
Bon,on va faire avec ce qu' on a..

A mon avis, la requete dans la partie chercher les controles,doit être fractionnée en deux temps:

1°-récupèrer IdVis de la dernière visiste de IdAbo en question.

 texte_SQL = "SELECT * FROM visites " & _
  "WHERE Id_abonne= " & idAbo & _
  " AND visites.vis_programmation=0 " & _
  "ORDER BY visites.vis_date;" 
  
  'Tu te pointes vers le dernier enregistrement, pour avoir l' IdVis.
  rsVisite.Open texte_SQL, adocnx
  If Not (controle.EOF) Then
     rsVisite.MoveLast
     IdVis=rsVisite![vis_id]
  End If

2°-chercher ensuite dans visites_abos les controles correspondants à cet IdVis.
 texte_SQL = "SELECT * FROM visites_abos " & _
   "WHERE visites_abos.vis_id=" & IdVis & ";"
   controle.Open texte_SQL, adocnx
   ...


Il va de soi que tu vas utiliser 2 recordsets dans cette partie là.
Tu dois donc en rajouter un.

C' est après que tu pourras passer aux factures (toujours de l' abonné en question).
'chercher les factures de contrôles
texte_SQL = "SELECT fact_ope.ope_dd_facturation " & _
"FROM fact_ope INNER JOIN fact_visite " & _
"ON fact_visite.fact_id=fact_ope.fact_id " & _
"WHERE fact_visite.vis_id=" & IdVis & ";"

IdVis étant la variable dans laquelle on a récupèré la dernière visiste de IdAbo en question..





[] Ce qui va sans dire. va mieux en le disant.
0
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
26 juil. 2012 à 14:39
Merci pour cette réponse mais honnêtement c'est du Chinois voir de l’Hébreu pour moi....

En gros cela veut dire quoi ?

En tout cas merci pour votre aide
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
26 juil. 2012 à 15:03
En gros cela ne veut rien dire, quoi ..!

Oublies donc.
Et merci d' avoir prêté attention.

Bonne continuation.




[] Ce qui va sans dire. va mieux en le disant.
0
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
26 juil. 2012 à 15:31
Je suis désolé de vous avoir blessé si je n'ai pas compris ce que vous avez écris malheureusement chaque personne a son domaine de compétence et l'informatique ce n'est pas mon domaine.

J'essaie de traduire ce que vous avez mis et de voir ou je dois l'insérer dans ma macro.

Mais pour un novice c'est pas très simple.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 juil. 2012 à 18:19
Bonjour, kriss13,
C'est toi-même, qui l'a écrit :
chaque personne a son domaine de compétence et l'informatique ce n'est pas mon domaine

Tu es la seconde personne à laquelle je fais cette réponse, cette semaine :
Reste alors dans ton domaine. Adresse-toi à un développeur. Montre-lui ce qu'a écrit LIBRE_MAX. Il saura faire en moins de deux et toi, tu pourras occuper plus intelligemment ton temps à l'accomplissement des tâches qui sont dans ton domaine de compétences (gain de temps et gain d'argent).
Tu es ici sur un forum de développeurs. Si tu veux le devenir (seule raison valable de venir ici), il va falloir "t'y mettre" et apprendre les bases, puis avancer pas à pas. Ce n'est que dans cette démarche (de développeur, donc), que nous t'accompagnerons, développeur débutant ou non.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
27 juil. 2012 à 07:53
La macro je l'ai demandé à un pro et il n'a pas réalisé ce que je lui demandé et je lui demandé de modifier sa macro et maintenant ça fait un mois et toujours rien donc je me suis dis autant c'est juste un syntaxe à modifier c'est pour cela que je me suis rapproché de vous.

Après s'il faut modifier toute la structure ou créer une seconde macro....

J'ai essayer en créant une requête en direct sur la base de donnée, j'ai réussi à avoir toutes les valeurs mais je n'ai pas réussi à conserver uniquement la dernière. J'ai voulu utilisé Dmax, max mais cela pas fonctionner.

Tous ça pour dire que j’essaie de faire des trucs et que je n'attendais pas la réponse toute cuite.

Après je ne perds pas trop mon temps car je suis en vacance c'est aussi pour cela que je m'en occupe.

Merci quand.
0
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
27 juil. 2012 à 07:56
*même
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 juil. 2012 à 08:05
La macro je l'ai demandé à un pro


Corrigeons donc : à quelqu'un qui a prétendu être un "pro", hein !..
Aucun "pro" n'aurait écrit ceci (pas faux, mais très ... "enfantin"... et à la fois simpliste et cause de lenteurs induites)
Range("A3:R65536").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
... etc ...


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
27 juil. 2012 à 10:02
En tout cas ils sont les propriétaires du logiciel que l'on utilise interface et base de données et fourniture de tableau bilan.... c'est peut être pour cela qu'ils n'ont pas répondu à ma demande ils ne savent peut être pas faire.... bref je me contenterais de ce que j'ai....

Vous pouvez marquer comme résolu ou le supprimer.

C'est compliquer pour se former afin d'arriver à faire ce que je veux ?

Bonne continuation à vous.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 juil. 2012 à 10:32
C'est compliquer pour se former afin d'arriver à faire ce que je veux

Rien n'est jamais compliqué, dès lors que l'on bûche, se forme, etc ... (c'est comme pour tout) ! Encore faut-il vouloir et être prêt à y consacrer du temps, c'est tout !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
kriss13 Messages postés 11 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 27 juillet 2012
27 juil. 2012 à 10:43
On va essayer j'ai 3 semaines.... avez vous un tutoriel, un site pour apprendre les bases ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 juil. 2012 à 10:52
Un tutoriel pour apprendre les bases ?
Non, pas moi, en tout état de cause.
Je me suis contenté personnellement de l'aide VBA (qui vient avec Excel), de la lire, de m'imposer de touts petits exercices d'application sur la base (à chaque étape) des rudiments que je venais d'apprendre, etc ... puis de m'amuser à compliquer les choses de plus en plus.
Méthode de "maso" ? Non ! Pas du tout ! Cela m'a au contraire conduit à garder ma personnalité propre et à ne pas répéter forcément les "errements" éventuels de tel pou tel autre formateur.
C'est probablement la raison pour laquelle mes approches sont souvent très personnelles (et assez souvent finalement plus performantes).
Je ne te donne donc aucun autre conseil, puisque ce que j'ai choisi m'a réussi


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous