Renvoi Rien dans un choose
Bonjour,
Dans mon code, j'exporte des colonnes d'un fichier à un autre,
quand la colonne A ( ID qui est censé être unique ) est dans le fichier alors ca remplace les données de la ligne ou figure l'ID
le problème est que j'exporte des données de 6 fichiers différents, et il se peut qu'un même ID soit présent dans plusieurs fichier différents.
Du coup ca va me remplacer la ligne avec des données qui sont déjà présente dans le fichier mais qui ne le sont pas dans le fichier ou j'exporte,
donc quand je ne veux rien exporter je met la colonne "AAA" qui est vide, mais ca me remplace quand même le champ..
est-il possible de renvoyer une valeur NULL, qui ne remplace pas ma ligne ?
With Workbooks.Open(Chemin2 & Fichier2) ' On ouvre le fichier
With .Sheets("attente PDH terminé") ' On va "travailler" avec la page attente PDH terminé
For S = 2 To .Range("B" & Rows.Count).End(xlUp).Row
For E = 1 To UBound(T4, 2) ' Pour chaque élément du tableau
' On le remplit avec les infos dela bonne colonne (Regarde l'aide de Choose ou de CHOISIR() dans une page Excel)
T4(1, E) = .Cells(S, Choose(E, "D", "AAA", "J", "G", "AAA", "B", "AAA", "AAA", "N", "AAA", "AAA", "F", "M"))
Next E
' On recherche dans le fichier principal si ce matricule existe
Set Cel = ws.Columns("A").Find(What:=.Range("D" & S), LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
' Le matricule existe on remplace les données
Cel.Resize(1, UBound(T4, 2)) = T4
Else
' ' Le matricule n'existe on écrit les données à la fin
ws.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(1, UBound(T4, 2)) = T4
End If
Next S
End With
.Close savechanges:=False ' Ferme le fichier sans le sauvegarder
End WithAu passage, je suis obligé de garder la ligne
Cel.Resize(1, UBound(T4, 2)) = T4Car si la ligne avec cette ID est vide au départ, je suis bien obligé d'y ajouter des éléments d'autres fichiers !
Merci d'avance
Bonjour,
N'est-il pas plus simple d'y inclure la question en début de macro "Voulez vous lancer l'export ?" si oui suite du code .. si non sortie du code.
Dim EXPORT As String
EXPORT = InputBox("Voulez-vous lancer un export ? OUI ou NON :")
If EXPORT="NON" Then Exit Sub
End IfBonjour,
Merci pour ta réponse,
Après avoir retourner le problème dans tous les sens, je pense avoir trouvé la solution à mon problème,
mais le problème c'est que je galere à le mettre en place :(
J'aimerais copier mes lignes en fonction de la catégorie de cette dernière (ici Boisson)
donc je met en place une condition mais je ne sais pas pourquoi ca ne marche pas, ca ne rentre même dans le If, même en testant avec toutes les colonnes du tableau !
J'ai un autre petit blocage aussi, j'aimerais envoyer les lignes seulement ou le tarif est présent, parce qu'actuellement si j'ai déjà un tarif dans le fichier "Recu" et que dans le fichier "Envoi" il n'y en a pas pour cette même ligne (avec le même code1), la valeur du fichier "Envoi" va remplacer celle du fichier "Recu", je me retrouve donc avec une cellule vide ou figurait avant un jolie petit tarif
J'ai donc créé 3 petits fichiers spécialement pour l'occas' !
- Envoi : il contient les données à exporter
- ExcelForum : il contient la Macro, c'est le fichier qui lie les deux classeurs
- Recu : il va recevoir les données
Si quelqu'un à une idée.. Merci d'avance !