VBA Copie dans cellules vide

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 !

actaris51

XLDnaute Occasionnel
Bonjour,
J'ai un tout petit problème :
J'ai ce bout de code :

Sub celvides()
ActiveSheet.Range("N1:N4000").SpecialCells(xlCellTypeBlanks) = "01/01/2012"
ActiveSheet.Range("O1:O4000").SpecialCells(xlCellTypeBlanks) = 'la celulle d'a coté
End Sub

Le but est que pour mes cellules vides de la colonne N, la date du 01/01/20012 soit mise automatiquement, ce qui marche à condition qu'il y ait effectivement des cellules vides (si je le lance deux fois d'affilée, ca plante).
Et la deuxième ligne de code; je souhaite que pour les cellules vides de la colonne O, soit recopiée la valeur correspondante de la colonne N. Je pensais utiliser la fonction Cellule.Offset(0, -1) mais je n'y arrive pas.
Pouvez vous m'aider ?
Merci
 
Re : VBA Copie dans cellules vide

Re-,

essaie ainsi :

Code:
Sub celvides()
With ActiveSheet
    If Application.CountBlank(.Range("N1:N40")) > 0 Then
        .Range("N1:N40").SpecialCells(xlCellTypeBlanks).Value = "01/01/2012"
    End If
    If Application.CountBlank(.Range("O1:O40")) > 0 Then
        With .Range("O1:O40").SpecialCells(xlCellTypeBlanks)
            .Value = .Offset(, -1).Value
        End With
    End If
End With
End Sub
 
Re : VBA Copie dans cellules vide

Merci beaucoup
C'est presque ca, mais il y a un leger bug que je ne comprends pas.
Regards dans mon fichier :
Cijoint.fr - Service gratuit de dépôt de fichiers

Lorsque je lance la macro, les lignes 35 à 38 sont vides
donc en théorie, dans la colonne N il devrait y avoir 31/12/2012 et IDEM dans la colonne O.
Cepandant, dans la colonne O il écrit 31/10/2009.
Je ne comprend pas pourquoi..
Merci
 
Re : VBA Copie dans cellules vide

Re-,

essaie ainsi :

Code:
Sub celvides()
With ActiveSheet
    If Application.CountBlank(.Range("N1:N40")) > 0 Then
        .Range("N1:N40").SpecialCells(xlCellTypeBlanks).Value = "01/01/2012"
    End If
    If Application.CountBlank(.Range("O1:O40")) > 0 Then
        With .Range("O1:O40")
            .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=RC[-1]"
            .Value = .Value
        End With
    End If
End With
End Sub
 
- 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

Discussions similaires

A
Réponses
7
Affichages
1 K
Alex6942
A
E
Réponses
8
Affichages
3 K
Elegancya
E
C
Réponses
1
Affichages
2 K
C
Réponses
8
Affichages
2 K
Genii
G
Retour