× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 se positionner avec une macro dans une cellule préciseSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
jmsch
  Posté le 19/08/2014 @ 23:32 
Aller en bas de la page 
Petit astucien

Bonjour,

j'ai besoin de me positionner dans la 1er ligne vide d'un tableau.
Pour ce faire j'utilise le bout de code ci dessous. Il fonctionne.

Range("A" & Cells(2000, 5).End(xlUp).Row + 1).Select

Maintenant dans un autre tableau les valeurs ont été trié en fonction de la couleur de la cellule. Les cellules de couleur en haut , les autres dessous.
Je voudrais me positionner dans la 1er ligne sous les cellules de couleur.

Merci

Publicité
ferrand
 Posté le 20/08/2014 à 00:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Je crains que la détection ne puisse se régler de la même façon, dans la mesure où la couleur n'est pas un critère utilisable avec la méthode SpecialCells, à laquelle on aurait pu penser, et qu'il faille en passer par une boucle pour trouver la première cellule non colorée.

n étant la dernière ligne de ta plage, renvoyée par ton code : n = Cells(2000, 5).End(xlUp).Row + 1)

on aurait quelque chose dans ce genre (si ta plage commence ligne 2 et si tu dois toujours tester sur la colonne E) :

For i = 2 to n
If Cells(i, 5).Interior.ColorIndex = xlColorIndexNone Then
Range("A" & i).Select
Exit For
End If
Next i

jmsch
 Posté le 21/08/2014 à 14:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour et merci

j'ai testé ton code.
Il fonctionne si les cellules ont une couleur. Dans mon cas la couleur provient d'une mise en forme conditionnel, donc ca ne fonctionne pas.
Y a peut être plus simple. Il faudrait tester les colonnes C et D et s'arrêter à la 1er cellules non vide rencontrée. C'est colonnes contiennent des nombres que je saisie manuellement.
En quelque sorte faire une synthèse des 2 lignes ci dessous. Je sais faire avec une colonne mais pas avec 2.
Si ou colonne C est non vide, ou colonne D est non vide je positionne le curseur juste dessous en A

Range("A" & Cells(2000, 3).End(xlUp).Row + 1).SelectRange("A" & Cells(2000, 4).End(xlUp).Row + 1).Select

ferrand
 Posté le 21/08/2014 à 14:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Pour C et D :

Dim n(1) as Integer, i%

For i = 0 to 1
n(i) = Cells(2000, i + 3).End(xlUp).Row + 1
Next i
Range("A" & Iif(n(0) < n(1), n(0), n(1)).Select

Pour formats conditionnel, je regarderai, pas le temps maintenant.

jmsch
 Posté le 21/08/2014 à 21:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Il manque un jeux de parenthèse après le Iif autour du 1er élément de l'expression.
Range("A" & IIf((n(0) < n(1)), n(0), n(1))).Select

Pour le test, ça se positionne correctement uniquement si C et D contiennent tous les 2 des valeurs ce qui n'est pas mon cas.

Dans mon tableau il y a 4 possibilités, soit :
- C contient une valeur
- D contient une valeur
- C et D contiennent une valeur
- C et D sont vides
Moi je voudrais me positionner en A dans la 1er ligne vide, ligne ou C et D sont vide.

Encore Merci

ferrand
 Posté le 21/08/2014 à 23:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

En effet manquait une parenthèse (je tape directement dans le post et pas de compilateur qui me prévient de l'absence d'une élément de syntaxe...)

Si j'ai bien compris, pour avoir C et D à la fois, tu inverses la condition dans la fonction Iif => IIf(n(0) > n(1), n(0), n(1)).

ferrand
 Posté le 22/08/2014 à 01:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Et pour revenir sur les formats conditionnels, ça ne peut pas marcher, car les cellules qui répondent à la condition et celles qui n'y répondent pas ont le même format conditionnel. On ne peut donc tester sur ce format et ses propriétés. Il faut alors tester sur la même condition que celle qui aboutit à colorer lorsqu'elle est vraie.

jmsch
 Posté le 22/08/2014 à 22:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour ton aide.
Le positionnement avec les colonnes C et D que tu m'as donné me convient très bien même si je ne comprend pas tout son fonctionnement.

Si j'ai pu te froisser un peu avec l'histoire des parenthèses oublié, ce n'était pas mon intention.
J'ai juste corrigé afin que le post soit juste et aussi si un éventuel futur utilisateur veut l'utiliser.

Bonne soirée



Modifié par jmsch le 22/08/2014 22:24
ferrand
 Posté le 22/08/2014 à 23:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

jmsch a écrit :

Merci pour ton aide.
Le positionnement avec les colonnes C et D que tu m'as donné me convient très bien même si je ne comprend pas tout son fonctionnement.

Si j'ai pu te froisser un peu avec l'histoire des parenthèses oublié, ce n'était pas mon intention.
J'ai juste corrigé afin que le post soit juste et aussi si un éventuel futur utilisateur veut l'utiliser.

Bonne soirée

Pas de souci ! Si je me "froisse", 1) faut une raison... 2) je l'exprime directement ! Au cas particulier, j'ai simplement remarqué que pour ce type d'omission, si j'avais tapé dans un module, j'aurais eu une signalisation d'erreur en allant à la ligne... C'est d'ailleurs une des raisons pour lesquelles il est plus productif de disposer d'un modèle pour faire des propositions, cela évite des erreurs et permet de tester, cela permet aussi de faire des propositions plus ajustées à l'environnement du problème soulevé.

S'il y a des points sur lesquels tu t'interroge, il ne faut pas hésiter à demander...

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
519,90 €Ultrabook HONOR MagicBook 14 (Ryzen 5 3500U, 8Go, 256 Go SSD) à 519,90 €
Valable jusqu'au 28 Octobre

HONOR fait une promotion sur son ultrabook HONOR MagicBook 14 qui passe à 519,90 € au lieu de 700 € grâce au code promo AMACHINES30PROMO. Cet ordinateur portable possède un écran 14 pouces Full HD IPS, un processeur AMD Ryzen 5 3500U (avec chip graphique Vega 8), 8 Go de mémoire DDR4, un SSD 256 Go PCIe NVME, le WiFi5 / Bluetooth 5.0, un lecteur d'empreintes, une webcam, un clavier rétro éclairé, une batterie 56 Wh (jusqu'à 10h d'autonomie) et ne pèse que 1,38 kg. Il fonctionne sous Windows 10. Une très bonne affaire pour une machine compacte et puissante.


> Voir l'offre
15,99 €Télémètre laser 50 m TECCPO USB à 15,99 € avec le code 2V546KHE
Valable jusqu'au 24 Octobre

Amazon fait une promotion sur le télémètre laser 50 m TECCPO qui vous reviendra à 15,99 €. Sur la page de paiement, utilisez le code promo 2V546KHE. Le prix passera à 15,99 € sur la page de confirmation de commande. Ce télémètre laser est rechargeable par USB, dispose d'un écran rétro éclairé, permet de mesure des distances, des aires, des volumes ainsi que des angles.


> Voir l'offre
283,99 €Ecran ultra large LG 34 pouces 34WL50S-B à 283,99 €
Valable jusqu'au 23 Octobre

Amazon propose actuellement l'écran 34 pouces LG 34WL50S-B à 283,99 € livré gratuitement alors qu'on le trouve à partir de 400 € ailleurs. Cet écran ultra large est au format 21/9, possède une dalle IPS et offre une résolution de 2560 x 1080 pixels. Avec lui, vous pourrez bénéficier d'une plus grande immersion dans les jeux et les films. Cet écran est compatible FreeSync.


> Voir l'offre

Sujets relatifs
Execution macro lors d'une saisie dans une cellule
Ouvrir avec macro un fichier dans autre classeur
Copier Coller dans Nouv Classeur avec Nom Cellule
afficher un calendrier dans une macro de cellule
Macro - déctecter un caractère dans une cellule
Suppress ligne avec cellule nommée en macro
cellule avec formule dans excel
Macro vers une cellule précise à un endroit précis
2 pages par feuille dans macro excel
Recopie cellule par macro
Plus de sujets relatifs à se positionner avec une macro dans une cellule précise
 > Tous les forums > Forum Bureautique