Macro decaler la selection d'une cellule si elle est pleine

Bonjour,

je viens chercher un petit coup de pousse pour finaliser ma macro
Après avoir chercher tout le week end je suis toujours en difficulté.

Si en A1 ma cellule est pleine, je voudrais que la macro selectionne la cellule de droite (B1 pour coller du texte. Si la cellule A1 est vide alors je voudrais qu 'elle selectionne A1 puis coller......

Bref je ne trouve que des formules pour décaler mais sans la conditions de la cellule vide en A1

Range("A46").End(xlToLeft).Offset(0, 4).Select
Ce code fonctionne mais comment ajouter la condition "cellule vide en A1=A1

Merci pour votre aide

9 réponses

  1. Contributeur
    Bonjour,

    if [A1]="" then
    ...
    else ' sinon
    ...
    endif
    0
    1. Bonsoir

      Pourquoi la fonction DECALER ici?

      Ta problématique me semble être :
      un texte blalbla.. et si A1 est vide y coller le texte sinon le coller en B1

      donc :
      montexte= "blabla"
      If range("A1").value="" then range("A1")=montexte else range("B1")=montexte

      ou si tu veux quand est A2 est rempli, B2 aussi, c2 etc mettre dans la première de droite vide :
      ' recherche la dernière colonne remplie de la ligne 2
      DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
      cells(2,derncol)=montexte

      Cdlmnt
      0
      1. Merci via55, tu as décrypté ma problématique....je vais essayer de l'adapter a mon code ci dessous
        0
      2. J'ai rajouté +1 a la fin pour que ca fonctionne....Bref ca ne fonctionne pas non plus!

        DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column +1
        0
    2. bonjour eriiic et merci pour ta réponse.

      Je teste ca de suite
      0
      1. Je ne comprends pas...

        la macro ne tient pas compte de ma cellule en A1 et elle colle directement mon texte 4 colonnes plus loin???

         Application.ScreenUpdating = False
        ActiveSheet.Shapes("Note Hotel").Copy
        Sheets("Synthèse").Select
        If ("A46") = "" Then

        'Range("A46").Select
        ActiveCell.FormulaR1C1 = "Frais d'hotel"
        Selection.Font.Underline = xlUnderlineStyleSingle
        Selection.Font.Bold = True
        Selection.Font.Italic = True
        Selection.Font.Italic = True
        Range("A48").Select
        ActiveSheet.Paste

        Else
        Range("A46").End(xlToLeft).Offset(0, 4).Select
        ActiveCell.FormulaR1C1 = "Frais d'hotel"
        Selection.Font.Underline = xlUnderlineStyleSingle
        Selection.Font.Bold = True
        Selection.Font.Italic = True
        Selection.Font.Italic = True
        Range("A48").Select
        ActiveSheet.Paste
        'Sheets(MaFeuille).Select
        'Range("g25").Select
        Application.ScreenUpdating = True

        End If
        0
        1. Bon alors voila
          Avec ce code, le résultat reste sur la meme cellule = pas de décalage
          DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column

          Si je rajoute +1 la macro ne tiens plus compte de ma cellule vide et décale automatiquement

          DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column +1

          sinon celle ci fonctionne

          montexte= "blabla"
          If range("A1").value="" then range("A1")=montexte else range("B1")=montexte

          je dois coller une image sous la cellule que la macro selectionne....mon probleme est que a chaque fois que j'execute la macro le texte ce decale mais l'image se surperpose???
          0
          1. Contributeur
            Cette réponse n'a rien à voir avec ce que tu demandais...
            Comme tu cours plusieurs lièvres à la fois en postant sur plusieurs forums sans attendre 24h et que je n'aime pas chercher pour rien j'abandonne.

            eric
            0
          2. Oui il fallait mettre +1 je l'avais oublié dans ma précipitation
            C'est vrai lorsque la première cellule est vide le décalage se fait
            essaie
            DernCol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
            if cells(2,derncol).value="" then cells(2,derncol)=montexte else cells(2,derncol+1)=mon texte

            Quant à l'image va voir ici :
            http://boisgontierjacques.free.fr/pages_site/lesimages.htm

            Cdlmnt
            0
          3. Désolé Eriiic de publier ma problématique sur plusieurs forum car j'ai vraiment besoin de cette solution pour finaliser mon fichier...tu ne cherches pas pour rien, je ne le voie pas du tout sous cet angle! Je te remercie de consacré de ton temps et de ton savoir pour moi et pour tout ceux qui verrons ce sujet....
            0
        2. Bon voici les nouvelles du front....

          Je ne trouve pas de sujet répondant à ma demande pour incorporer une image sous mon texte.

          Le principe est :

          Rechercher cellule première cellule vide
          coller du texte (jusqu'à la c ok)
          puis coller mon fichier image 2 lignes en dessous
          0
          1. montexte = "Note d'hotel"

            'Application.ScreenUpdating = False
            ActiveSheet.Shapes("Note Hotel").Copy
            Sheets("Synthèse").Select
            'derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
            'Cells(46, derncol) = montexte
            'If Range("A46").Value = "" Then Range("A46") = montexte Else Range("E46") = montexte
            derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
            If Cells(46, derncol).Value = "" Then Cells(46, derncol) = montexte Else Cells(46, derncol + 4) = montexte

            'Range("A46").Select
            'ActiveCell.FormulaR1C1 = "Frais d'hotel"
            'Selection.Font.Underline = xlUnderlineStyleSingle
            'Selection.Font.Bold = True
            'Selection.Font.Italic = True
            'Selection.Font.Italic = True
            'Range("A48").Select
            'ActiveSheet.Paste
            'Sheets(MaFeuille).Select
            'Range("g25").Select
            Application.ScreenUpdating = True
            0
        3. Donc du coup j'avance dans mon dossier...pas à pas

          J'ai trouvé comment importer l'image mais la macro ne la colle pas exactement en dessous du texte....c 'est un peu aléatoire


          ActiveSheet.Shapes("Note Hotel").Copy
          Sheets("Synthèse").Select
          derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
          If Cells(46, derncol).Value = "" Then
          Cells(46, derncol) = montexte
          Cells(46, derncol) = ActiveSheet.Paste
          Else
          Cells(46, derncol + 4) = montexte
          Cells(46, derncol + 4) = ActiveSheet.Paste
          0
          1. Ok....bon après avoir passer mon week end j'ai réussi à écrire la solution ce que je cherchais....
            Un grand merci à toi via55 et à ériiic aussi lol

            Donc la solution :

            ActiveSheet.Shapes("Note Hotel").Copy
            Sheets("Synthèse").Select
            'derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
            'Cells(46, derncol) = montexte
            'If Range("A46").Value = "" Then Range("A46") = montexte Else Range("E46") = montexte
            derncol = Cells(46, Cells.Columns.Count).End(xlToLeft).Column
            If Cells(46, derncol).Value = "" Then
            Cells(46, derncol) = montexte
            Cells(48, derncol) = Cells(48, derncol).Select
            ActiveSheet.Paste
            Else
            Cells(46, derncol + 4) = montexte
            Cells(48, derncol + 4) = Cells(48, derncol + 4).Select
            ActiveSheet.Paste
            0