Copier une valeur suivant des conditions dans un autre onglet

Signaler
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

Après de nombreuses recherches sur Internet, je n'ai pu trouver ce que je voulais.
C'est pourquoi je fais appel à vos compétences pour m'aider à résoudre mon problème :

Je souhaite avec une macro, copier une valeur date de la cellule K6 de la feuille "Saisie des anomalies" UNIQUEMENT si la cellule K6 à une valeur date de renseigné.

Je souhaite coller cette valeur dans l'onglet "BaseDon composant" à l'intersection d'une colonne et d'une ligne.

Le critère pour le choix de la colonne se trouve dans la cellule B10 sur l'onglet "Saisies des anomalies"
On retrouve cette valeur dans "BaseDon composant" sur la ligne 1 à partir de la colonne D jusqu'à BF

Le critère pour le choix de la ligne se trouve dans la cellule G6 sur l'onglet "Saisies des anomalies"
On retrouve cette valeur dans "BaseDon composant" sur la colonne A à partir de la ligne 2 jusqu'à la ligne 73.


J'ai regardé beaucoup de forum, j'ai essayé des solutions, mais je n'ai pas de grandes compétences sur vba, alors si vous pouviez m'aider se serait super sympa de votre part.

J'espère avoir était assez clair dans mes explications. Je posterai une version de mon fichier si besoin (je n'ai pas trouvé comment faire)


Pour info j'ai la version Microsoft Visual Basic 7.0
Merci.
Charles A.

7 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Bonjour,
1) prends dorénavant soin de poser des questions VBA/Excel dans la ruvrique appropriée (Langages Dérivés > VBA)
Un administrateur bienveillant devra déplacer celle-ci !
2) essaye d'exposer tes questions de manière purement technique, sans embarrasser d'autres explications.
Est-ce que ta demande est finalement ceci :
a) - je sais déterminer la feuille la ligne et la colonne de destination
b) - je connais la valeur à y mettre
c) - je veux l'y mettre à la seule condition que la cellule K6 d'une feuille contienne une date valide
Si tel est le cas ===>> vraiment élémentaire et du genre
WorkSheets("nom_feuille").range(....).value = la_valeur
Si par contre, tu butes déjà sur les points a, b et c ===>> c'est unje discussion par point qu'il te faudra ouvrir, en ne traitant que CE point-là.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Merci pour ta réponse et désolé pour les deux premiers points.
Je suis nouveau sur ce forum.

Pour répondre à tes questions :

a) - je sais déterminer la feuille la ligne et la colonne de destination :
- Oui je sais déterminer la feuille de destination : c'est "BaseDon composant" !
- Pour ce qui est de la ligne et de la colonne, elles sont déterminées suivant les données saisies en G6 et en B10 dans "Saisies des anomalies"

b) - je connais la valeur à y mettre :
- Oui je connais le type de valeur : c'est un format date.
- Oui je connais la valeur : c'est celle qui se trouve dans la cellule K6 de l'onglet "Saisies des anomalies"

c) - je veux l'y mettre à la seule condition que la cellule K6 d'une feuille contienne une date valide
- Oui !

En faite ce qui me bloque surtout c'est la ligne que j'ai surligné en rouge.
Comment sélectionner en auto une cellule qui serait l'intersection d'une ligne et d'une colonne, défini eux mêmes par des données ?

PS: Je vais essayer de voir comment déplacer mon topic dans la bonne rubrique.
Merci :)

Charles A.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
En faite ce qui me bloque surtout c'est la ligne que j'ai surligné en rouge.
Comment sélectionner en auto une cellule qui serait l'intersection d'une ligne et d'une colonne, défini eux mêmes par des données ?

C'est donc la la seule question !
Bon ...
1) inutile de la "sélectionner" (lourdeur totalement inutile) !
On s'y réfère pour en lire le contenu.
Ainsi : Worksheets("feuil1").cells(2,3).value retourne le contenu de la cellule C2 (à l'intersection de la colonne C et de la ligne 3) !
2) ouvre donc ton aide VBA sur le mot IsDate
Ce sont là des réponses sur des points très élémentaires.
Elles doivent te suffire très largement pour faire ce que tu veux faire.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Pardon :
Corrige
Ainsi : Worksheets("feuil1").cells(2,3).value retourne le contenu de la cellule C2 (à l'intersection de la colonne C et de la ligne 32) !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
J'ignore par ailleurs dans quelles circonstances de on appli tu te trouves conduit à lire des cellules pour savoir quelle colonne et quelle ligne sont concernées, mais crains là un défaut de conception fondamental.
Je veux espérer que tu n'utilises pas des cellules de ta feuille de calcul comme "tremplins" pour y stocker des valeurs qu'il te suffirait d'attribuer à des variables, transformant ainsi ton appli en un véritable jeu de piste.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

petites questions liées :
- qu'est-ce que tu appelles une "date valide" ? et du coup : qu'est-ce que tu appelles une "valeur date" ?

dans excel c'est deux choses :
- les valeurs : range("a1").value
- et les formats : range("a1").NumberFormat = "d, mmm, yyyy"



coïto ergo sum
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
Voir aussi dans l'aide les différences entre
.Value, .Value2 et .Text
d'une cellule ou d'un range