Collage selon format colonne
Bonjour à tous, pro du vba
Tout d'abord merci de faire vivre ce forum et de proposer des solutions toujours appropriées
En ce qui concerne mon soucis, j'essaie de faire une macro capable de lire une colonne, si cette dernière observe une cellule vide, la macro viendra coller une valeur dedans.
Pour être plus explicite voice mon code :
Windows(DOC2).Activate 'active le fichier source
ActiveSheet.Range("E10").Copy 'copie la cellule "type de véhicule"
Windows(DOC).Activate 'active le fichier principal
If IsEmpty(Range("e2")) Then
Range("e2").PasteSpecial Paste:=xlPasteValues 'colle la cellule "type de véhicule" dans e2
With ActiveCell
.Font.Color = RGB(0, 0, 0)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Interior.Color = RGB(224, 255, 160)
.Offset(1, 0).Select
End With
Call compteur
Else
With ActiveCell
.PasteSpecial Paste:=xlPasteValues
.Font.Color = RGB(0, 0, 0)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Interior.Color = RGB(224, 255, 160)
.Offset(1, 0).Select
End With
'ActiveSheet.Range("e2").Columns.AutoFit
Call compteur
End If
Windows(DOC2).CloseAvec ce morceau de code, je vais chercher une cellule à copier dans un autre document excel puis je viens le coller dans la cellule "E2" de mon document actif si cette dernière est vide, puis je me décale d'une cellule vers le bas grâce à la fonction Offset pour pouvoir lors d'un second import coller le resultat en dessous de la dernière cellule utilisée.
Le soucis étant que si l'utilisateur vient cliquer une autre cellule, le résultat sera alors coller dans cette dernière.
J'aimerais donc que ma macro lise la colonne E de mon document actif, puis si elle tombe sur une case vide, qu'elle vienne coller dans cette dernière.
J'ai donc essayer un code comme celui-ci :
Windows(DOC2).Activate 'active le fichier source
ActiveSheet.Range("E10").Copy 'copie la cellule "type de véhicule"
Windows(DOC).Activate 'active le fichier principal
If IsEmpty(Range("e2")) Then
Range("e2").PasteSpecial Paste:=xlPasteValues 'colle la cellule "type de véhicule" dans e2 "START"
With ActiveCell
.Font.Color = RGB(0, 0, 0)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Interior.Color = RGB(224, 255, 160)
.Offset(1, 0).Select
End With
Call compteur
Else
i = Columns("e").End(xlDown).Row
For Each cel In Range("e2:e" & i)
If cel > "" Then
With cel
.PasteSpecial Paste:=xlPasteValues
.Font.Color = RGB(0, 0, 0)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Interior.Color = RGB(224, 255, 160)
'Offset(1, 0).Select
End With
'ActiveSheet.Range("e2").Columns.AutoFit
Call compteur
End If
Next cel
End If
Windows(DOC2).CloseEvidemment ce dernier ne fonctionne pas et j'ai beau trituré les lignes, je n'arrive pas à le faire fonctionner, c'est pourquoi je me tourne vers vous, en esperant que quelqu'un sera me répondre
Merci par avance,
Vbrod
P.S : Travaillant dans un grand groupe auto, je ne peux pas me permettre de vous transférer mon fichier Excel (soucis de confidentialité), en esperant que les informations que je vous ai fournises suffiront à la résolution du problème, le cas contraire je suis dispo pour toutes autres informations sur mon fichier.
Bonjour,
je ne pense pas savoir t'aider mais...
Point 6 des points à respecter: Pensez à joindre un fichier pour faciliter la compréhension du problème et augmenter les chances de vous faire aider (taille limite : 300ko, n'hésitez pas à compresser vos fichiers).
Ca aide à aider
une courte copie anonymisée suffit en général et les grands de ce forum interviendront
P.
Bonjour,
Merci du conseil Patrick, je n'y avais effectivement pas pensé !
Vous trouverez donc ci-joint un fichier vous permettant de tester mes macros.
Voici la demarche à suivre :
Ouvrir le fichier "TEST VBA" -> Cliquez sur le bouton "importer véhicule" -> selectionnez le fichier "TEST IMPORT"
Merci
Vbrod