Re : Import d'access vers excell, bloquage à 65000 entrées
Bonjour Chris, Bonjour Efgé. J'ai finalement opté pour un import sans garder la mise et page et en forme depuis access vers excel, ce qui me permet de facilement l'automatiser.
Ensuite, j'utilise une série de macros pour arriver à mes fins.
Je commence par:
Sub Macro_mise_en_page()
Cells.Select
Selection.ColumnWidth = 32
Cells.Replace What:="Lien PMRQ #", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="##Lien vers PMRQ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Qui me permet de remettre les colones à largeur suffisante, puis je modifie la colone des liens hypertext pour ne laisser que le lien.
Ensuite, j'active les 65530 premiers liens hypertext: (j'ai découvert à mes dépends qu'excel 2007 a un souci, il ne peut pas gérer plus de 65530 liens hypertext dans une même feuille de calcul... c'est d'ailleurs pour cette raison que lorsque j'importais depuis access en gardant la mise en page et la mise en forme, je n'importais que les 65530 premières lignes... Il a donc fallu diviser la feuille de calcul de 126230lignes en deux.)
Sub Lien_hypertext()
Dim val As Range
For Each val In Range("d2:d65530")
If val <> "" Then
ActiveSheet.Hyperlinks.Add Anchor:=Range(val.Address), Address:=val.Value
End If
Next
End Sub
Ensuite, vu que je ne peux pas avoir plus d'autres liens hypertext, je créé mon autre feuille de calcul:
Sub Macro_nouvelle_page()
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Feuil1").Select
Sheets("Feuil1").Name = "U_DEPL_requête_BLA_suite"
End Sub
Puis je fais un couper coller du reste de la table qui n'ont pas encore de liens hypertext actif (de 65531 à 126230):
Sub Macro_menu()
Range("A1:AB1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("U_DEPL_requête_BLA_suite").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("U_DEPL_requête_BLA").Select
Range("A65531:AB126230").Select
Application.CutCopyMode = False
Selection.Cut
Sheets("U_DEPL_requête_BLA_suite").Select
Range("A2").Select
ActiveSheet.Paste
End Sub
C'est du pur bidouillage, mais ça me permet d'arriver à mes fins, c'est à dire une table sous excel identique à celle que j'avais sous access, avec tout les liens hypertext actifs. Seul bémol qui viens du logiciel en lui même, j'ai été obligé de le faire en deux feuilles de calcul..
Maintenant, j'ai une dernière chose à faire, c'est de créer une macro qui me permet d'automatiser toutes les autres macros. Un peu comme sous access où on peut faire un chemin entre les macros. Si vous avez une idée de comment procéder sous excel?
Encore merci de votre aide fournie, on touche au but^^