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).Close

Avec 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).Close

Evidemment 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

2test-maccro.xlsx (11.16 Ko)
6import-test.xlsx (7.94 Ko)
Rechercher des sujets similaires à "collage format colonne"