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

SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

  • Initiateur de la discussion Initiateur de la discussion winxpfam
  • 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 !

W

winxpfam

Guest
Bonjour,

J'ai fait une macro qui marche bien mais bon je pense qu'il y a beaucoup plus simple.

Sub Try() ' SI B1 EST VIDE ALORS METTRE LA VALEUR DE A1 DANS Bi (i allant de 1 à la derniere ligne du tableau)

If IsEmpty(Range("B1")) = True Then 'Si B1 est vide alors B1=A1
Range("B1") = Range("A1")

ElseIf IsEmpty(Range("B2")) = True Then 'Si B2 est vide alors B2=A1
Range("B2") = Range("A1")

ElseIf IsEmpty(Range("B3")) = True Then 'Si B3 est vide alors B3=A1
Range("B3") = Range("A1")

ElseIf IsEmpty(Range("B4")) = True Then 'Si B4 est vide alors B4=A1
Range("B4") = Range("A1")

ElseIf IsEmpty(Range("B5")) = True Then 'Si B5 est vide alors B5=A1
Range("B5") = Range("A1")

'etc...

End If

End Sub

Vos suggestions sont la bienvenue

Merci
 
Dernière modification par un modérateur:
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Bonjour à tous,
Bienvenue sur XLD,

Merci de commencer tes messages par un Bonjour...

Peux-tu essayer :

Option Explicit

Sub Try()
Dim i%
For i = 2 To 50
If IsEmpty(Range("B" & i)) = True Then Range("B" & i) = Range("A1")
Next i
End Sub

A + à tous

Edition : Salut Fred... Même combat... A++
 
Dernière édition:
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Bonjour xinxpfam et bienvenue sur le forum.

Bien que tu n'aies pas encore lu la Lien supprimé et omis de dire bonjour au début de ton post, je suis bien disposé aujourd'hui et vais donc te faire une réponse qui je l'espère sera adaptée à ta demande.

Je te propose ce code :
VB:
Sub Try() ' SI B1 EST VIDE ALORS METTRE LA VALEUR DE A1 DANS Bi (i allant de 1 à la derniere ligne du tableau)
    Dim i
    For i = 1 To 100 ' mettre ici la dernière ligne souhaitée
        If IsEmpty(Range("B" & i)) Then Range("B" & i) = Range("A1")
    Next
End Sub

Dans le
Code:
For i = 1 to 100
il te faut remplacer le 100 par la dernière ligne que tu souhaites voir remplie par A1.

Edit : Hello JCGL

A+
 
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Bonjour,

Merci pour ta réponse très rapide.

je viens d'essayer ton code le problème c'est qu'il me remplie toutes les lignes jusqu'a 100 directement.

Merci comme même de ton aide.

Cordialement

 
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Bonjour à tous,

Bien que je sois passé inaperçu pour toi...

Option Explicit

Sub Try()
Dim i%
For i = Range("B65536").End(xlUp).Row To 1 Step -1
If IsEmpty(Range("B" & i)) = True Then Range("B" & i) = Range("A1")
Next i
End Sub

A + à tous
 
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Bonjour,

Merci pour ta reponse rapide.

Je viens d'essayer ton code mais le probleme c'est qu'il ne met rien dans B1 ert remplis toutes les autre cellule de b2 à b50

Merci comme même de ton aide.

Cordialement

Bonjour à tous,
Bienvenue sur XLD,

Merci de commencer tes messages par un Bonjour...

Peux-tu essayer :



A + à tous

Edition : Salut Fred... Même combat... A++
 
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Bonjour winxpfam, Bonjour Jean-Claude, Bonjour Fred,

Le code de winxpfam ne remplit-il pas seulement la première cellule vide de la colonne B par la valeur de A1 ? (ElseIf)

peut-être un truc comme ça...

Code:
Sub test()
    If Range("B1").End(xlDown).Row <> Range("B65536").End(xlUp).Row Then
        Range("B1").End(xlDown).Offset(1, 0).Value = Range("A1").Value
    End If
End Sub

Edit : Oups, 2 réponses que j'avais loupé, moi...
 
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Re-bonjour

Ben c'est bien ce que faisait ton programme avant non ?
Ou alors il manque une donnée au problème. Peux-tu m'expliquer clairement ce que doit faire ce code ?

A+
 
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

ce que je souhaite :

J'ai une valeur dans A1

Je souhaite la mettre dans B1 si elle est vide

Si elle est pleine mettre la valeur dans B2

Si la B1 et B2 Sont pleines mettre la valeur dans B3

etc...jusqu'a B*****

Si je ne suis pas assez claire merci de me le dire.

Merci d'avance

Cordialement
 
Dernière modification par un modérateur:
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Bonjour à tous

Mauvaise lecture du code de ma part. Mille excuses.

Voic une modif qui fonctionne :
VB:
Sub Try() ' SI B1 EST VIDE ALORS METTRE LA VALEUR DE A1 DANS Bi (i allant de 1 à la derniere ligne du tableau)
   Dim i
    For i = 1 To 100 ' mettre ici la dernière ligne souhaitée
       If IsEmpty(Range("B" & i)) Then
            Range("B" & i) = Range("A1")
            i = 100
        End If
    Next
End Sub

A+
 
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Bonjour,

Ton code marche nickel vraiment merci beaucoup.

Cordialement

 
Re : SI B1 EST VIDE ALORS B1=A1 SINON B2=A1 etc...

Re-bonjour,

En fait je n'avais pas bien compris le problème au départ. On peut donc remplacer le code par celui-ci :
VB:
Sub Try()
    Dim i
    While Not IsEmpty(Range("B" & i))
        i = i + 1
    Wend
    Range("B" & i) = Range("A1")
End Sub

A+
 
- 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
15
Affichages
791
Réponses
5
Affichages
915
Réponses
2
Affichages
411
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…