Elaboration de macro [Résolu]

Signaler
Messages postés
12
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
16 juin 2015
-
Messages postés
12
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
16 juin 2015
-
Bonjour à tous et à toutes,

Je me permets de soliciter votre aide concernant l'élaboration d'un code VBA, je ne m'y connais absolument pas.

Bref j'ai besoin de remplir les valeurs de ma colonne "RENOV_LOURDE_ANNEE" avec les valeurs de la colonne voisine "RENOV_LOURDE_DATE" si et seulement si il n' y a aucune valeur dans la colonne "RENOV_LOURDE_ANNEE"

Je m'explique, j'ai :
RENOV_LOURDE_ANNEE ¦ RENOV_LOURDE_DATE
2014 ¦ 30.07.2014
29.07.2014 ¦ 30.07.2014
NULL ¦ 30.03.2012
NULL ¦ 2014

Je veux :

RENOV_LOURDE_ANNEE
2014
29.07.2014
30.03.2012
2014

N'hésitez pas si vous avez besoin de précisions.

Bien à vous...

6 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Bonjour,
si tu veux le faire en VBA (ce forum) :
Il te suffit pour cela de (en supposant que la colonne RENOV_LOURDE_DATE soit la colonne 2 et la colonne RENOV_LOURDE_ANNEE la colonne 1 :
- parcourir en boucle for i = 1 to dernière_ligne ... next les cellules Cellule cells(i, 2) remplies de ta colonne RENOV_LOURDE_DATE
- et si la Cellule.offset(0,-1) = "" alors ===>> cellule.offset(0,-1).value = cellule.value
Montre-nous ce que tu écris sur la base de ces indications, si encore en difficulté.

En te signalant que tu peux le faire également par une simple formule Excel (sans VBA, donc) étirée sur la colonne 1

Messages postés
12
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
16 juin 2015

Merci de ta réponse ucfoutu.

Malheureusement je n'ai jamais élaboré de code VBA. Je ne me suis jamais penché sur le sujet et il m'est impossible d'écrire quoi que ce soit...

Mon travail me le demande, en fait, ce qui m'embête un peu.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Il va falloir que tu t'y mettes, cependant.
Messages postés
12
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
16 juin 2015

Certes... Merci de tes conseils en tout cas.

bien à toi...
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Ecoute :
Je vais te mettre sur les rails, mais il va falloir que tu analyses, comprennes et continues ...
Regarde ce que fait ce code :
 Dim cellule As Range, colonne_ref As Long, colonne_a_completer As Long
colonne_ref = 2 ' ===>> remplece ce 2 par le numéro de ta colonne RENOV_LOURDE_DATE
colonne_a_completer = 1 ' ===>> remplace ce 1 par le numéro de ta colonne RENOV_LOURDE_ANNEE
For Each cellule In Columns(colonne_ref).SpecialCells(xlCellTypeConstants)
MsgBox "la colonne de référence contient " & cellule.Value & vbCrLf & _
"et celle à compléter contient " & Cells(cellule.Row, colonne_a_completer).Value
Next

Il te montre ce que contient chaque cellule de la colonne de référence et ce que contient la cellule correspondante de la colonne à compléter.
Nous ne retenons de la colonne de référence que les cellules contenant une valeur ( xlCellTypeConstants )
Le reste est simple et est du B.A.BA ===>> donner à la cellule qui s'avèrerait vide ( Cells(cellule.Row, colonne_a_completer) ) la valeur trouvée dans la cellule de référence. Cela se fait par une simple expression conditionnelle, à substituer aux msgboxes que j'ai mis dans mon code
Les mots dont tu dois apprendre la signification et l'usage sont les suivants :
Dim
Range
For Each
Columns
SpecialCells
MsgBox
Cells
Value

l'ouverture de ton aide VBA sur ces mots t'apprendra cela.
Je te laisse bien évidemment te lancer maintenant (c'est vraiment peu et c'est un minimum à apprendre).
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Messages postés
12
Date d'inscription
mercredi 6 mai 2015
Statut
Membre
Dernière intervention
16 juin 2015

Ouahou, je ne m'attendais pas à une telle réponse, merci infiniment en tout cas. Tu sauves le monde de la géomatique Vaudoise.

Je vais prendre du temps pour me pencher sur le sujet car c'est quelque chose que je rencontrerai très souvent dans ma profession.

à une prochaine !