Copier les dernieres cellules de la première ligne non vide d'une plage

Bonjour à tous,

je tiens à vous remerciez tout d'abord du temps que vous prendrez pour lire et répondre à ce message.

le titre n'explique par correctement mon problème alors je vais aller dans le détail.

j'ai une plage de cellule de taille variable ce que je voudrais c'est de copier dans un tableau la premiere cellule "Ao,o", et la derniere cellule de la première ligne "Ao,n" ainsi que la premiere cellule "An,o" et la derniere cellule de la dernière ligne "An,n" et faire un calcul.

Comme je ne maîtrise pas forcement VBA j'ai essayé d'y aller directement avec la formule suivante:

=INDIRECT(CHOISIR(n-NB.VIDE(plage)&COLONNE()). Mais elle ne copie que la dernière colonne de ma plage.

Que se soit une macro ou juste une formule je suis preneur. je galère dessus depuis plus d'une semaine.

Merci encore à tous.

Ci-joint un fichier Excel pour bien explique le problème.

10test-1.xlsx (11.43 Ko)

Bonjour,

L'adresse de la cellule de départ est connue ?

L'étendue maximale (ta zone couleur vieux rose de tes deux exemples) peut être estimée par avance ?

Il n'y aura jamais de cellules vides parmi les données ?

Il n'y aura que des valeurs numériques, dans la plage ?

Si la réponse est positive à chacune des questions, vérifie dans la pièce jointe (cellules vertes) si j'ai compris? Les 4 formules sont différentes.

Bonjour,

L'adresse de la cellule de départ est connue ?

L'étendue maximale (ta zone couleur vieux rose de tes deux exemples) peut être estimée par avance ?

Il n'y aura jamais de cellules vides parmi les données ?

Il n'y aura que des valeurs numériques, dans la plage ?

Si la réponse est positive à chacune des questions, vérifie dans la pièce jointe (cellules vertes) si j'ai compris? Les 4 formules sont différentes.

Bonjour,

merci du temps que tu prens pour m'aider à résoudre mon problème.

pour répondre à tes questions:

  • l'adresse de la premiere cellule du tableau est connu c'est le ("C9") ce que l'on ne connait pas c'est la taille à priori du tableau (il peut être : "C9:E12" comme dans l'exemple ou alors ("C9: I16") ou ("C9:D10") en somme la plage de données varie c'est pourquoi j'ai colorié en rose les dimensions maximales du tableau).
  • c'est à l'utilisateur d'entrer les données, mais elles ne doivent pas dépassé l'étendue maximale de la zone couleur vieux rose pour les deux exemples (colonne comme ligne).
  • une fois que l'utilisateur à entrer ses données et donc défini la taille qu'il veut donner à sa plage, il ne peut y avoir aucune cellule vide à l'interieur de la plage remplie (mais dans la coloration rose il peut y avoir des cellules vides comme dans l'exemple joint).

Cordialement,

Bonjour,

L'adresse de la cellule de départ est connue ?

L'étendue maximale (ta zone couleur vieux rose de tes deux exemples) peut être estimée par avance ?

Il n'y aura jamais de cellules vides parmi les données ?

Il n'y aura que des valeurs numériques, dans la plage ?

Si la réponse est positive à chacune des questions, vérifie dans la pièce jointe (cellules vertes) si j'ai compris? Les 4 formules sont différentes.

Bonjour,

merci du temps que tu prens pour m'aider à résoudre mon problème.

pour répondre à tes questions:

  • l'adresse de la premiere cellule du tableau est connu c'est le ("C9") ce que l'on ne connait pas c'est la taille à priori du tableau (il peut être : "C9:E12" comme dans l'exemple ou alors ("C9: I16") ou ("C9:D10") en somme la plage de données varie c'est pourquoi j'ai colorié en rose les dimensions maximales du tableau).
  • c'est à l'utilisateur d'entrer les données, mais elles ne doivent pas dépassé l'étendue maximale de la zone couleur vieux rose pour les deux exemples (colonne comme ligne).
  • une fois que l'utilisateur à entrer ses données et donc défini la taille qu'il veut donner à sa plage, il ne peut y avoir aucune cellule vide à l'interieur de la plage remplie (mais dans la coloration rose il peut y avoir des cellules vides comme dans l'exemple joint).

Cordialement,

Et dépendamment de ce qu'il entre comme plage le tableau en bleu doit pouvoir s'actualiser sans que l'on vienne modifier quelque chose.

En gros c'est ça.

Bonjour Pumpkins,

Salut U.Milité!

Personnellement je passerais par macro via deux InputBox.

La première demande à sélectionner ta plage de donnée et la deuxième de sélectionner la cellule où tu veux avoir tes données extraite (Cf. Le fichier ci-joint et le code ci-dessous) :

Option Explicit
Public Plage As Range
Public Destination As Range

Sub Rappro()

Dim a As Long, b As Long, i As Long, j As Long, x As Long, y As Long

Set Plage = Application.InputBox("Sélectionnez une plage :", "Sélection de cellules", Type:=8)
Set Destination = Application.InputBox("Sélectionnez une cellule de destination :", "Sélection de cellule", Type:=8)

x = Plage.Column                'la colonne la plus à gauche
y = Plage.Row                   'la ligne la plus en haut
a = Plage.Columns.Count         'le nbr de colonne selectionné
b = Plage.Rows.Count            'le nbr de ligne selectionné
i = Destination.Row             'la ligne de destination
j = Destination.Column          'la colonne de destination

Cells(i, j) = Cells(y, x)
Cells(i, j + 1) = Cells(y, x + a - 1)
Cells(i + 1, j) = Cells(y + b - 1, x)
Cells(i + 1, j + 1) = Cells(y + b - 1, x + a - 1)

End Sub

Après pour la formule de calcul je peux pas t'aider >0<

Restant à dispo !

4pour-pumpkins.xlsm (19.61 Ko)

je vous remercie de vos aides U.Milité! et Juice

je télécharge vos fichiers et je vais régarder si ca réponds à mes préoccupations.

Je reste à votre disposition et vous enverrai un feedback le plus vite possible

Merci encore à vous deux.

Bonjour

c'est exactement ce que je cherchait merci encore à vous

Rechercher des sujets similaires à "copier dernieres premiere ligne vide plage"