Recentrage automatique d'un tableau

Résolu/Fermé
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 6 janv. 2016 à 17:47
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 12 janv. 2016 à 21:35
Bonjour et bonne année 2016 à tous,

J’ai créé une fonction macro recentrage sous Excel 2003. Pas de problème à ce niveau.

Mon problème c’est que je souhaiterais que la sélection soit automatique quelque soit l’emplacement du tableau (donc uniquement une sélection de la zone de donnée) mais je ne trouve pas la solution.

Ci-joint un fichier d’exemple : https://www.cjoint.com/c/FAgqSjEp6gt

Merci de votre aide

Cordialement
A voir également:

23 réponses

mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
12 janv. 2016 à 21:04
Bonjour,

Merci vraiment à ccm81 qui pas ces solutions m’a fait comprendre qu’il y avait plusieurs possibilités pour arriver à un résultat, et que le chemin pour y aboutir n’était pas toujours visible du premier coup, sans oublier que le plus difficile, pour aboutir à une solution, était de bien définir son besoin pour avoir de l’aide est là ce n’était pas toujours simple à transcrire par l’écriture.
De plus en utilisant la fonction souhaitée on peut se rendre compte de ces erreurs d’explication dans la demande, mais grâce à la perspicacité des intervenants, donc de l’aide apporté par le forum, la solution serait ou bout du chemin.

En plus de l’aide que tu m’as apporté, ccm81, tu m’as donné l’envie d’essayer de comprendre et de faire. Un grand merci à toi et à tous pour votre soutien sur l’avancement d’une application perso.

Comme le disait Aristote, c'est en construisant qu’on devient constructeur…

Merci à tous et à très bientôt pour de nouvelles aventures.

J’ai pris le temps de mettre en frome toutes les infos récoltées pour mon application + un peut de travail perso est voici le code final que j’utilise si cela peut-être utile pour quelqu’un :

-Recherche d’une zone de données
-recadrage de cette zone à une position définie
-zoom sur la zone
-Demande de validation oui ou non
-Si oui copie de la zone dans une autre feuille
-Si non, demande de faire les modifications souhaitées


Sub visu_dessin()
Const celcible = "D3"
Dim Rep As Integer
Dim derlig As Long, dercol As Long, plage As Range
Dim premlig As Long, premcol As Long, nbli As Long, nbco As Long
Set plage = Range(celcible).Resize(1000, 100)
'selection et recentrage de la zone de travail
derlig = plage.Find("*", , , , xlByRows, xlPrevious).Row
premlig = plage.Find("*", , , , xlByRows, xlNext).Row
dercol = plage.Find("*", , , , xlByColumns, xlPrevious).Column
premcol = plage.Find("*", , , , xlByColumns, xlNext).Column
Set plage = Range(Cells(premlig, premcol), Cells(derlig, dercol))
nbli = plage.Rows.Count
nbco = plage.Columns.Count
plage.Cut Destination:=Range(celcible)
'zoom sur la zone de travail
derlig = Range(celcible).Row + nbli - 1
dercol = Range(celcible).Column + nbco - 1
Set plage = Range(Cells(3, 4), Cells(derlig, dercol))
plage.Select
ActiveWindow.zoom = True
Range(celcible).Select
'fenetre de choix de la réponse oui ou non
Rep = MsgBox("le dessin est-il conforme à votre attente ?", vbYesNo + vbQuestion, "VALIDATION DE LA CREATION")
If Rep = vbYes Then
' traitement si la réponse est Oui
derlig = Range(celcible).Row + nbli - 1
dercol = Range(celcible).Column + nbco - 1
Set plage = Range(Cells(3, 4), Cells(derlig, dercol))
plage.Select
plage.Copy
Sheets("dessin").Select
Range("D3").Select
ActiveSheet.Paste
Range("D3").Select
Else
' traitement si la réponse est non
Dim SH As Object
Set SH = CreateObject("WScript.Shell")
SH.Popup "vous pouvez réaliser les modifications soauhaitées", 5, "5 secondes", 48
Set SH = Nothing
End If
End Sub

Cordialement
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
12 janv. 2016 à 21:05
Re
comment ajouter le code d'une macro dans une fenêtre comme vous l faite ?

Cordialement
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
12 janv. 2016 à 21:18
Une fois le code copié ici, tu selectionnes tout le code, puis tu as le choix entre l'icone <> (Code) à côté du S (en haut de cette fenêtre) et l'icone suivante (triangle) qui ajoute la coloration syntaxique propre à chaque langage (chez moi sous ie ne fonctionne pas).
RQ. Les autres icones permettent de mettre le texte en gras (G), italique (I), et souligné (S) et la dernière d'insérer une image

Bonne soirée
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
12 janv. 2016 à 21:31
Re,

Ok merci

juste un essai pour voir si ça marche donc j'ai bien compris :

' traitement si la réponse est Oui
derlig = Range(celcible).Row + nbli - 1
dercol = Range(celcible).Column + nbco - 1
Set plage = Range(Cells(3, 4), Cells(derlig, dercol))
plage.Select



cordialement
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
12 janv. 2016 à 21:35
Re,

ça marche, ouf.

On ne fini jamais d'apprendre, car chaque jour nous apporte des leçons et des expériences qui enrichissent notre vie.

cordialement
0