Problème copie de données dans cellule vide

ArthurS

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je suis débutant en matière de vba et je dois avouer que là je sèche complétement.
Pour chaque ligne de mon tableau, qui correspondent à des contacts, j'ai en colonne des informations type NOM PRENOM numéro de téléphone etc..

Mon problème est le suivant:
j'aimerai qu'à chaque fois que la case "téléphone" est vide que celle ci soit rempli soit par la case "portable" soit par la case téléphone personnel si jamais celui commence par 06 (donc un portable).

En gros il s'agit de copier le contenu d'une cellule présent sur la même ligne sachant que celui-ci peut-être présent soit dans la colonne "tel perso" soit dans la colonne "portable".

On a donc 4 cas de figure possible selon que la case portable soit pleine ou vide, que le tel perso débute par 06 ou non; Enfin si jamais le tel début par 06 mais est différent de la case protable (dans ce cas là on privilégiera la cellule "portable")

Comme je pense que mes explications ne sont pas très claire, je mets en pièce jointe un exemple de ce que j'aimerai comme rendu.

Merci d'avance pour vos retours et conseils!

Kenavo
 

Pièces jointes

  • exemple problème macro excel.xlsx
    8.7 KB · Affichages: 36

jpb388

XLDnaute Accro
Re : Problème copie de données dans cellule vide

re
si tu tiens au vba
Code:
Sub test()
 Dim Ctl As Range
 For Each Ctl In Range("D4:D7")
    If Ctl = "" Then
        If Ctl.Offset(0, 2) <> "" Then
            Ctl = Ctl.Offset(0, 2)
        Else
            If Left(Ctl.Offset(0, 1), 2) = "06" Then Ctl = Ctl.Offset(0, 1)
        End If
    End If
 Next Ctl
End Sub
 

ArthurS

XLDnaute Nouveau
Re : Problème copie de données dans cellule vide

C'est parfait merci beaucoup c'est exactement ce que je cherchais!

Juste une dernière petite chose, si je souhaite intégrer une nouvelle condition, à savoir que la cellule d'avant le tel (donc ici les cellules C) doit être rempli pour que la macro se lance est ce que je peux rajouter quelque chose du style:
if Ctl.Offset(0, 2) <> ""
and ctl.offset(0, -1) <>""Then

(je ne suis vraiment pas sur de moi pour le coup)

merci encore pour l'aide!
 

jpb388

XLDnaute Accro
Re : Problème copie de données dans cellule vide

re
Personnellement je prendrait la b car le nom sera toujours là le prénom peut manquer ce qui donne
Code:
Sub test()
 Dim Ctl As Range
 For Each Ctl In Range("D4:D7")
    If Ctl.Offset(0, -2) <> "" Then
        If Ctl = "" Then
            If Ctl.Offset(0, 2) <> "" Then
                Ctl = Ctl.Offset(0, 2)
            Else
                If Left(Ctl.Offset(0, 1), 2) = "06" Then Ctl = Ctl.Offset(0, 1)
            End If
        End If
    End If
 Next Ctl
End Sub
 

Discussions similaires

Réponses
18
Affichages
509

Statistiques des forums

Discussions
314 628
Messages
2 111 343
Membres
111 108
dernier inscrit
Elias30