ebutant sur vba je bloque ... - VB/VBA/VBS - Programmation
Marsh Posté le 08-05-2013 à 11:28:54
Bonjour,
1) Met le code entre balise, c'est plus lisible
2) Val_Data = ActiveCell, en plus de ne pas retourner une valeur mais un Range. Et surtout, on a aucune idée de quelle est la cellule active
3) Evite de nommer une variable cells, c'est aussi le nom d'un objet VBA
4) Range(ActiveCell.Offset(1000, 0)) ne retourne pas une plage, mais une seule cellule. Ce que tu veux est Range(cellulededepart, celluledefin)
5) ON UTILISE PAS .SELECT DEDJEU
(Parce que là, un .Select suivi d'un .Selection, dans un With Selection, euh )
Je comprends pas tout à fait ce que tu veux faire, mais déja corrige ça, ça permettra d'y voir plus clair.
Bref, ton code compile vraiment ?
Marsh Posté le 08-05-2013 à 13:58:30
Tzol a écrit : 2) Val_Data = ActiveCell, en plus de ne pas retourner une valeur mais un Range. |
Pas d'accord, un objet de type Range seul renvoie bien sa valeur (.Value)…
Il faut Set Val_Data = ActiveCell pour pointer la variable en type Range.
Marsh Posté le 08-05-2013 à 14:11:02
Merci pour l'info, ça m'évitera peut-être des bêtises
Mais ça me parait générateur de confusion et donc à éviter.
Marsh Posté le 13-05-2013 à 12:58:00
Bonjour,
Désolé pour le silence mais je déménage et plus de net pendant encore une semaine.
Spoiler : Sub CellulesValeurDeterminee() |
J'ai une base avec en ligne 2 plusieurs colonnes, de 5 a 10 colonnes.
- L'ordre des colonne n est pas le meme d'une extration a l'autre
- La modification de format dois se faire automatiquement suivant certain critere :
je veux changer de format toutes les lignes ayant la "Part ID" 123ABC dans la "Version" --B
donc ma macro doit regarder dans la colonne "Part ID"et repere toutes les lignes correspondantes a cette Part ID mais ne dois changer de format que celle qui ont la version --B
- Avec la meme macro (c est pour ca que j avais mis OU) je dois faire le meme genre de recherche mais avec deux autre colonnes "Document ID" et "Document Version"
Avec ma macro j arrive a faire ce que je veux mais seulement avec une seule contrainte alors que je dois selectionner sur deux contrainte parce que je peux avoir plusieurs version du meme Part ID, et mon deuxieme soucis mon range je suis obligé de le changer sur chaque extraction alors que je voudrais que ce sois ma macro qui cree sa propre plage.
Mes excuses je ne mets pas forcement d accens ou d apostrophe parce que je suis sur une clavier QWERTY anglais.
Merci pour votre aide precieuse
Olivier
Marsh Posté le 07-05-2013 à 16:03:46
Bonjour,
Je suis sur une macro depuis plusieurs jour je bloque.
Voila j'ai une extraction de BDD et afin de faciliter son expertise je voudrais creer un outils qui ressort les ligne identique par rapport a la valeur contenu dans la colonne Version et Part ID ou Document ID et Document Version.
la difficulte c est que les colonnes ne sont jamais au meme endroit suivant la BDD extraite.
Voici le code que j ai creer jusqu ici
Sub CellulesValeurDeterminee()
Dim cells As Variant
Dim Val_data As String
Val_data = ActiveCell
''CHOIX DE LA COLONNE
For Each cells In Range(ActiveCell.Offset(1000, 0))
''RECHERCHE DE LA VALEUR
If cells.Value = Val_data Then
''COPIE DE LA MISE EN FORME
With Selection.Copy
cells.EntireRow.Select
Selection.PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End With
End If
Next
End Sub
Actuellement je suis oblige de donner la colonne et selectionner la cellule.
La finalite de mon projet :
L'utilisateur selectionne la ligne qui l'interesse par rapport a sa recherche suivante la contrainte "Version et PartID " OU "Document ID et Document Version"choisie et toute les ligne change de format.
Je vous remercie de m'aider. Me donner du code sans les explication serait bien, mais je preferais les explication en plus ca me permettrais d evoluer.
Merci encore et pour plus d explication je reste dispo.
Oli13011