Si vide ne pas envoyer /Si non vide envoyer

Bonjour à tous et à toutes,

Dans le cadre de mon stage, je dois réaliser un code VBA me permettant d'envoyer comme indiqué dans le titre une information d'un classeur à un autre si et seulement si ma cellule n'est pas vide.

Exemple: dans le Classeur_Source la cellule AD8 n'est pas vide alors je souhaite l'envoyer dans le Classeur_Destination en cellule K9.

Comment faire pour faire cela? Quel code utilisé?

Je vous remercie par avance en vous souhaitant une bonne journée.

Cordialement

Tom_Tom91

Hello,

A adapter:

Sub CommandBouton1()
Dim classeurSource As Workbook, classeurDestination As Workbook
'ouvrir le classeur source (en lecture seule)
Chemin = ThisWorkbook.Path
'définir le classeur destination
Set classeurDestination = ThisWorkbook
Set classeurSource = Application.Workbooks.Open(Chemin & "\Base de données.xlsm")
'copier les données de la feuille"Listing des Projets" du classeur source vers la feuille "BDD" du classeur destination
if [AD8] <> "" then 
classeurSource.Sheets("Listing des Projets").range("AD8").Copy classeurDestination.Sheets("BDD").Range("K9")
end if
'fermer le classeur source
classeurSource.Close False

End Sub

Hello Rag02700,

Tout d'abord je tiens à te remercier pour la réponse que tu as apporté à mon problème. Étant donné que je n'ai pas les fichiers sur moi dès demain matin j'essaierai de l'adapter et si je suis face à un réel problème je modifierai ma réponse. Si aucune problème je mettrai que mon problème a été résolu.

Encore merci et bonne soirée.

1) Sub CommandBouton1()

2) Dim classeurSource As Workbook

3) Dim classeurDestination As Workbook

4) 'ouvrir le classeur source (en lecture seule)

5) Chemin = ThisWorkbook.Path

6) 'définir le classeur destination

7) Set classeurDestination = ThisWorkbook

8) Set classeurSource = Application.Workbooks.Open(Chemin & "\CHAMPION V2.xlsm")

9)'copier les données de la feuille "EN COURS, à suivre" du classeur source vers la feuille "factures 2021" du classeur destination

10) If [AG8] <> "" Then

11) classeurSource.Sheets("EN COURS, à suivre").Range("AG8").Copy classeurDestination.Sheets("factures 2021").Range("E35")

12) End If

13) 'fermer le classeur source

14) classeurSource.Close False

15) End Sub

Edit: Sur la ligne 11 je me retrouve avec une erreur comme quoi l'indice n'appartient pas à une sélection ("erreur 9")

Je pense qu'il ne trouve pas mon classeur de destination

C'est la variable "chemin" qui n'est surement pas bonne.

Ce code fonctionne chez moi

Dim classeurSource As Workbook, classeurDestination As Workbook

'définir le classeur destination
Set classeurDestination = ThisWorkbook
'définir le classeur source
Set classeurSource = Application.Workbooks.Open("C:\Users\toto\Documents\Nouveau dossier (2)\Classeur2.xlsx")

'copier les données de la feuille 1 du classeur source vers la feuille 1 du classeur destination si non vide

If [A1] <> "" Then
classeurSource.Sheets(1).Range("A1").Copy classeurDestination.Sheets(1).Range("B1")
End If

'fermer le classeur source
classeurSource.Close False

Ce code copie la valeur de la cellule A1 du fichier "classeur2" si elle n'est pas vide.

Il copie dans la cellule B1 de mon classeur contenant la macro

PS :

si tu préfères passer par le nom de la feuille c'est comme ceci :

classeurSource.Sheets("nom de la feuille source").Range("A1").Copy classeurDestination.Sheets("nom de la feuille destination").Range("B1")

Merci beaucoup graçe à toi mon problème a été résolu.

Bonne journée

Rechercher des sujets similaires à "vide pas envoyer"