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

Alex -  
 Alex -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    if [A1]="" then
    ...
    else ' sinon
    ...
    endif
    0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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. Alex
       
      Merci via55, tu as décrypté ma problématique....je vais essayer de l'adapter a mon code ci dessous
      0
    2. Alex
       
      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
  3. Alex
     
    bonjour eriiic et merci pour ta réponse.

    Je teste ca de suite
    0
  4. Alex
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alex
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      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. Alex
       
      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
  7. diabolo162 Messages postés 1039 Statut Membre 29
     
    suite
    0
  8. Alex
     
    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. Alex
       
      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
  9. Alex
     
    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
  10. Alex
     
    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