VBA : Macro selection d'une colonne d'un tableau

Fermé
Pololalune Messages postés 3 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 21 avril 2017 - 28 mars 2017 à 12:58
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 avril 2017 à 08:38
Bonjour à tous.

Je n'ai pas vu de post référantt à ma question, je me permet donc de poster ici :)

Je suis actuellement en cours de création d'une macro afin de facilité ( ou d essayer de faciliter ) un fichier.
Je souhaite prendre une colonne d'un tableau nommé "alcohol" pour la copier sur une autre page.

Mon problème est que ce tableau est en milieu de page (première ligne à 105 (avant j'ai un tableau soft, un tableau bière; et après tableau vin)

Sauf qu'il est possible que dans un mois celui ci commence à la 106 ou 107.
Le but est donc que la macro aille chercher d'elle même la colonne 18 de mon tableau alcohol.

Je pensais à :

Sheets("general").Select
' Table ("Alcohol") & Range("R").Select
' Range(Selection, Selection.End(xlDown)).Select
'Selection.Copy
'Sheets("Ecart").Select
'Range("C5").Select
'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Mais ça ne marche absoluement pas.

Par la suite je souhaiterai aussi faire cette même macro pour le vin.

La solution serait peut etre de faire en sorte que ma première ligne soit celle du tableau concerné mais une fois encore, vu que ce numéro de ligne risque de bougé ...

Si quelqu'un peu me renseigner çà serait top ! =)

bonne journée à tous

Polo

5 réponses

perreet Messages postés 230 Date d'inscription vendredi 30 janvier 2009 Statut Membre Dernière intervention 3 mai 2018 20
14 avril 2017 à 16:42
Bonjour,
Il serait plus facile de t'aider avec un aperçu de ton tableau...
De base, évites les Select qui sont source d'erreurs.
L'idée est de mettre une première ligne de titre à chaque tableau pour pouvoir les retrouvés dans le code.

Peux-tu le joindre via www.cjoint.com ?

Cordialement,
0
Pololalune Messages postés 3 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 21 avril 2017
19 avril 2017 à 15:29
Bonjour Perreet,

Merci pour ton retour,

Ci joint le lien : https://www.cjoint.com/c/GDtnCeEWAg6

Donc le but est de sélectionner la colone purchase du tableau Alcool (ci joint qui début en ligne 108) sachant que j'ai 6 tableau sur cette feuille et que je souhaite appliquer cela a tout les tableaux.

J'espère que c'est assez clair.


En déviant un peu du sujet initial :
Je ne m'y connais pas assez en VBA pour éviter le .select je pense.

Pourquoi une source d'erreur ? (j'utilise plein de fois cette "formule" dans ma macro :/)
Quelles sont les alertnatives?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 20 avril 2017 à 09:19
Bonjour,

Ton image est jolie mais ne sert à rien d'autant plus que ton exposé est particulièrement flou... On a ce que tu as écris et donc

cjoint n'aime pas les classeurs avec macros

Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message




on a le choix de l'embarras:
Par la suite je souhaiterai aussi faire cette même macro pour le vin.

par ex alcohol est le nom générique pour quels types de boissons (vin, biere,vodka.... etc) avec pour chaque boisson un tableau et où les met on
ou un seul tableau avec tous les types de boissons ?

prend du recul et sois précis complet dans ta réponse




 Michel
0
Pololalune Messages postés 3 Date d'inscription mardi 28 mars 2017 Statut Membre Dernière intervention 21 avril 2017
21 avril 2017 à 14:49
Et bien Perreet avait besoin d'une image, je lui ai donc drop une image.
Je suis en stage et ne suis pas sur de pouvoir divulguer les informations. donc en effet le tableau est vide.

En fait chaque fin de mois je dois compter le stock que je renseigne en Stock final Stock et Stock final Bar, le cumul donnant le stock final de mon lieu de travail.

Ces "Stock finaux" deviendront les stocks initiaux du mois prochain, donc j'ai fais une macro pour copier coller les info dans les colonnes correspodantes.

Chaque fin de mois je compare aussi le stock Théorique alcool avec le stock compté.
Je souhaite donc que la macro aille chercher les infos toute seule dans la colone Stock final seulement pour le tableau nommé alcool.

La question est donc comment faire pour aller chercher une colone en particulier dans un tableau qui est nommé alcool.

Le tableau commence à la ligne 108 et fini ligne 198.

Cependant le nombre de ligne avant ce tableau est suceptible de changer donc faire une selection n'est pas fiable car il est possible que celui ci commence à la ligne 115 dans un mois et que la macro ne fonctionne donc plus.

Pour le moment je me contente de :
"
Range("R108").Select
Range(Selection, Selection.End(xlDown)).Select
"


Je pensais donc à un code qui dirait :

Selection colonne "R" du tableau "alcool".


est ce possible ?

J'espère avoir été plus clair cette fois.
0
perreet Messages postés 230 Date d'inscription vendredi 30 janvier 2009 Statut Membre Dernière intervention 3 mai 2018 20
22 avril 2017 à 19:46
Bonjour,
J'ai remarqué que la couleur de fond est différente sur la case de titre.
Donce tu peux parcourir ton tableau jusqu'à rencontrer cette couleur et le texte ALCOHOLS.


Dim i as integer
i=1
While(Cells(i, 1).Font.Background = RGB(255, 0, 0) And Cells(i, 1).Text = "ALCOHOLS")
i=i+1
Wend

la valeur de i sera la ligne que tu cherche.



A toi de trouver le code RGB de la couleur de fond...

Pour trouver toutes les valeurs pour les quelles cells(L,C).value <> ""

Cells(L, C) fait référence à une cellule à la ligne L et colonne C.

Tu devrais avoir les outils pour t'en sortir...

Bon courage
-1

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

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 23 avril 2017 à 08:39
Bonjour,

Heu...Pour Perreet: Pourquoi une boucle qui plus est sur des couleurs ?

Pour trouver la ligne Alcohols

Dim Ligne As Byte

Ligne = Sheets("general").Columns("A").Find(what:="alcohol", after:=Range("A1")).Row
'ou
Ligne = Sheets("general").Columns("A").Find(what:="alcohol", searchdirection:=xlPrevious).Row


Pour Pololalune
..."Et bien Perreet avait besoin d'une image, je lui ai donc drop une image.
Je suis en stage et ne suis pas sur de pouvoir divulguer les informations. donc en effet le tableau est vide. '...


Comme tu cites Perreet et uniquement lui parce que tu ne veux faire aucun effort pour fournir un classeur exemple sans données confidentielles, dém... toi pour la suite



 Michel
-1