boucle while pour detection cellule non vide

jebbayou

XLDnaute Junior
Bonjour à tous,

j'ai besoin de votre aide pour faire fonctionner mon code vb.
En effet, j'utilise ce bout de code pour remplir des cellules avec une détection de la dernière cellule non vide pour sortir du code.
Mon problème:
- c'est que je ne sais pas comment faire pour que lorsqu’il y a une cellule vide le code s’arrête de tourner.
- la cellule Bn reçoit une concaténation d'un numéro de téléphone + une date et heure j'aurai besoin d'une astuce pour convertir la date+heure en chiffre (comme une concaténation dans excel)
Sub prod()
Dim n As Integer
Dim d As Date
Worksheets("Donnees FT").Range("G1").Select

For n = 2 To 3000
Do While Not IsEmpty(Worksheets("Donnees FT").Range("G" & n))
d = Worksheets("Donnees FT").Range("H" & n)
Worksheets("Donnees FT").Range("B" & n) = Worksheets("Donnees FT").Range("G" & n) & d

If Worksheets("Donnees FT").Range("I" & n) = "non comptab. prod." Then
Worksheets("Donnees FT").Range("F" & n) = Worksheets("Donnees FT").Range("D" & n)
Worksheets("Donnees FT").Range("E" & n) = Worksheets("Donnees FT").Range("C" & n)
Else

If Worksheets("Donnees FT").Range("I" & n) = "post-prod" Then
Worksheets("Donnees FT").Range("F" & n) = Worksheets("Donnees FT").Range("F" & n - 1)
Worksheets("Donnees FT").Range("E" & n) = Worksheets("Donnees FT").Range("E" & n - 1)

End If
End If

Loop
Next n

End Sub

Merci de vos réponses.
 

mth

XLDnaute Barbatruc
Re : boucle while pour detection cellule non vide

Bonsoir,

Tu auras certainement plus de chances d'avoir des réponses avec un extrait de fichier
(remplace les données confidentielles par des données bidons)

Par ailleurs, pense à utiliser les balises quand tu inscrits du code dans un message, c'est bien plus lisible (clique sur le petit signe # au dessus de la fenêtre de message)

Bonne soirée :)

mth
 

flyonets44

XLDnaute Occasionnel
Re : boucle while pour detection cellule non vide

Bonsoir
tu peux remplacer ton do while
par un boucle
for depuis le deniere cellule de ta colonne
for K = Range("A65536").End(xlUp).Row to 1 step -1
avec un if
if cells(k, 1).value= vb nullstring then
'passe au suivant
else
ton code
end if
next
Cordialement
flyonets
next
 

jebbayou

XLDnaute Junior
Re : boucle while pour detection cellule non vide

Bonjour et merci pur vos réponses,

Flyonets,mon besoin est de sortir de la macro sur la condition = vbnullstring donc directement sur le end sub.

if cells(k, 1).value<> vb nullstring then
'mon code
Else
sortir et arreter la macro (end sub)

Voila merci de vos réponses.
 

jebbayou

XLDnaute Junior
Re : boucle while pour detection cellule non vide

Re a tous,

ok c'est bon j'ai trouvé il faut utiliser le Exit Sub

If Worksheets("Donnees FT").Range("G" & n) = vbNullString Then Exit Sub

Par contre il me reste une question sur une concaténation, je voulais savoir comment convertir une date + heure en chiffre suite a une concaténation???
dans le fichier test dans la ligne A2 j'ai le résultat actuel et dans la cellule de A12 a A16 j'ai le format souhaité.(code dans feuil1)

Merci
 

Pièces jointes

  • test1.xlsm
    26 KB · Affichages: 103
  • test1.xlsm
    26 KB · Affichages: 131
  • test1.xlsm
    26 KB · Affichages: 121
Dernière édition:

Statistiques des forums

Discussions
312 489
Messages
2 088 868
Membres
103 980
dernier inscrit
grandmasterflash38