Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... ect

  • Initiateur de la discussion Initiateur de la discussion nicoco3101
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nicoco3101

Guest
Bonjour tout le monde,

je n'arrive pas à faire une partie de ma macro. Je suis en train de créer un petit "logiciel" pour mon travail mais je bloque sur une partie déterminante.

J'aimerais savoir comment il est possible de traduire ceci:

-tant que cells(2,h) est vide écrire le texte "azerty" dans cette cellule

-mais lorsque cette cellule n'est pas vide, écrire le texte "azerty" en cellule (2,h+1).

-ainsi de suite, si cells(2,h+1) n'est pas vide alors écrire le texte en cells(2,h+2) ...ect

J'ai testé avec une While, mais je ne maitrise pas trop cette formule.

Cordialement.
bonne journée
 
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

si 2,h est vide écrire "Azerty"
si elle n'est pas vide, écrire en 2,h+1 "azerty"

Automatiquement, 2h+1 n'est plus vide et ainsi de suite pour toute les colonnes.
donc tu va te retrouer avec "azerty" dans toute tes colonnes inévitablement
Sauf si tu valide à partir de la dernière colonne.
 
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

Bonjour Nicoco, bonjour le forum,

Désolé Nicoco mais c'est pas clair. Tu veux quoi exactement ? On peut faire une boucle sur x colonnes et dire si c'est vide alors on ecrit azerty sinon on laisse ce qu'il y a... Si c'est ça que tu désires, la macro ci-dessous devrait convenir :
Code:
Sub Macro1()
Dim h As Byte 'déclare la variable h
For h = 1 To 20 'boucle sur les colonnes 1 à 20 (à adapter à ton cas)
    'condition : si la cellule de la ligne 2 de cette colonne est vide, écrit "azerty" dans la cellule
    If Cells(2, h).Value = "" Then Cells(2, h).Value = "azerty"
Next h
End Sub
 
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

j'ais chosis azerty pour vous donner un exemple.

En fait,je pars de 2 fichiers différents. lorsque je lance une macro du fichier numéro 1 je souhaite que le texte choisit dans une liste déroulante et validé, soit placé en cellule(2,h) du fichier 2.
Donc lorsque je veux réinsérrer un nouveau texte de cette liste déroulante et le placer lui aussi dans le fichier 2 je ne veux pas qu'il supprime l'ancien (donc qu'il se positionne a coté en cellule (2,h+1))...
 
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

Merci du temps que vous m'accordez Robert je vais essayer cette partie de macro.
 
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

Bonjour nicoco3101, Habitude, Robert :
Désolé Nicoco mais c'est pas clair
Tellement pas clair que je n'ai pas compris la même chose:
Je pense que nicoco3101 veux écrire dans la première cellule vide au bout de la ligne 2. Avec ça, ça marche:
Code:
Sub azerty()
Dim Dercol As Long
Dercol = Sheets("Feuil1").Range("IV2").End(xlToLeft).Column + 1
Cells(2, Dercol).Value = "azerty"
End Sub
Cordialement

EDIT ; la même en plus court :

Code:
Sub azerty()
Cells(2, Sheets("Feuil1").Range("IV2").End(xlToLeft).Column + 1).Value = "azerty"
End Sub
 
Dernière édition:
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

Veuillez m'escusez si je ne suis pas clair..

Le principe de la boucle For est bien, mais je souhaite que:

que la macro s'arrête après avoir détecté la première cellule vide et copier le texte dedans.

Seulement avec une boucle For cela va copier le texte Jusqu'à la colonne h=20
 
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

Bonjour le fil, bonjour le forum,

Alors peut-être comme ça :
Code:
Sub Macro1()
End Sub
Dim h As Byte 'déclare la variable h
 
For h = 1 To 20 'boucle sur les colonnes 1 à 20 (à adapter à ton cas)
'condition : si la cellule de la ligne 2 de cette colonne est vide,
If Cells(2, h).Value = "" Then
Cells(2, h).Value = "azerty" 'écrit "azerty" dans la cellule
Exit Sub 'sort de la procédure
End If
Next h
End Sub

Édition :

J'avais pas lu la proposition d'Efgé mais je crois que ça correspond mieux à ta demande...

Édition 2 :

Papou veut me faire craquer mais non je tiens le coup... !
 
Dernière édition:
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

Bonjour Robert Efgé nicoco habitude, le forum,
bah moi en lisant j'ai compris encore autre chose.
Alors peut-être que Nicoco va nous faire une vrai explication bien claire et que de plus il va mettre un petit bout de fichier avec ce qu'il a et ce qu'il veut.
Un petit coucou à Robert j'étais en CI la semaine dernière j'ai pensé a toi !!!
bonne journée
Papou 🙂

PS: Juste pour nicoco si avec un for, après la première condition vrai tu mets :exit for a ton avis la macro elle va faire quoi? ou exit sub comme a mis Robert .
 
Dernière édition:
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

Re à tous, Bonsoir Paritec,
Une proposition qui "bouche" le premier trou en ligne 2 (exactement comme la proposition de Robert avex un exit For, mais d'une autre manière)
Code:
Sub azerty2()
Cells(2, Sheets("Feuil1").Range("B2").End(xlToRight).Column + 1).Value = "azerty"
End Sub
Cordialement
 
Re : Tant que cells(2,h)="" alors écrire "azerty", sinon écire dans cells(2,h+1)... e

Bonjour, désolé de ne pas avoir répondu plus tot.

La solution de Robert correspondait à mes attentes. Je vous remercie a tous

Je suis désolé de ne pas avoir été clair, mais expliquer ce que je voulais vraiment aurait été plus complexe, j'ais donc essayé de vous présenter ca sur un exemple pour que vous me donniez la voie a suivre pour résoudre mon problème.

Encore merci !!

bonne journée

cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
657
Réponses
3
Affichages
645
Réponses
12
Affichages
1 K
G
  • Question Question
Microsoft 365 Recherche v + VBA
Réponses
3
Affichages
2 K
Grelune
G
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…