> 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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Grosses promotions pour le Super Sale chez Geekbuying
-70% -1 -%
@Geekbuying
Pastilles lave-vaisselle Finish Quantum Infinity Shine 83 capsules
13,49 € 17,59 € -23%
@Amazon
Boitier PC mini-tour Cooler Master Elite 301 (Micro-ATX, ITX, verre trempré, 3 ventilateurs 120 mm)
45,99 € 57 € -19%
@Amazon
Panneau solaire pliable Blackview Oscal PM100 (100W, IP65, MC4, USB C/USB A)
89 € 119 € -25%
@Geekbuying
Câble RJ45 Cat6 KabelDirekt 30M, Gigabit/LAN
13,52 € 20 € -32%
@Amazon
Routeur TP-Link Archer AX58 WiFi 6
49,99 € 89,99 € -44%
@Amazon

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